Compiler design (Record no. 14418)
[ view plain ]
| 000 -LEADER | |
|---|---|
| fixed length control field | 09047nam a22002057a 4500 |
| 005 - DATE & TIME | |
| control field | 20260218154057.0 |
| 008 - FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION | |
| fixed length control field | 260218b |||||||| |||| 00| 0 eng d |
| 020 ## - ISBN | |
| International Standard Book Number | 9789386235640 |
| Price | 915.00 |
| 040 ## - CATALOGING SOURCE | |
| Original cataloging agency | S.X.U.K |
| 041 ## - Language | |
| Language | English |
| 082 ## - DDC NUMBER | |
| Classification number | R 005.453 CHA(COM) |
| 100 ## - MAIN ENTRY--PERSONAL NAME | |
| Personal name | Chandak, Manoj B |
| 245 ## - TITLE STATEMENT | |
| Title | Compiler design |
| Statement of responsibility | Manoj B Chandak; Khushboo P Khurana |
| 260 ## - PUBLICATION, DISTRIBUTION, ETC. (IMPRINT) | |
| Place of publication, distribution, etc | xvi, 462p. |
| Name of publisher, distributor, etc | University press |
| Date of publication, distribution, etc | c2018 |
| 300 ## - PHYSICAL DESCRIPTION | |
| Pages | 462p. |
| Other Details | P.B. |
| 500 ## - GENERAL NOTE | |
| General note | Preface<br/>Acknowledgements<br/><br/>1. Introduction to Compilers<br/>Objectives<br/>1.1 Introduction<br/>1.2 History of Compiler<br/>1.2.1 C Compiler<br/>1.2.2 Java Compiler<br/>1.3 Language Processing System<br/>1.3.1 Preprocessor<br/>1.3.2 Assembler<br/>1.3.3 Linker<br/>1.3.4 Loader<br/>1.4 Interpreter and Compiler<br/>1.4.1 Interpreter<br/>1.4.2 Compiler<br/>1.4.3 Interpreter vs Compiler<br/>1.5 Phases of Compiler<br/>1.5.1 Lexical Analysis<br/>1.5.2 Syntax Analysis<br/>1.5.3 Semantic Analysis<br/>1.5.4 Intermediate Code Generation<br/>1.5.5 Code Optimisation<br/>1.5.6 Code Generation<br/>1.5.7 Symbol Table and Error Handling<br/>1.6 Overview of Compiler Design<br/>1.6.1 Pass and Phase<br/>1.7 Application of Techniques Used in Compiler Design<br/>1.8 Tombstone Diagram<br/>1.9 Cross-compiler and Bootstrapping<br/>1.10 Relating Compilation Phases with Formal Systems<br/>1.11 Compiler Construction Tools<br/>Summary<br/>Exercises<br/>Review Questions<br/>Practice Questions<br/><br/>2. Lexical Analysis<br/>Objectives<br/>2.1 Lexical Analysis and Tokens<br/>2.2 Input Buffering<br/>2.2.1 Two-buffer Input Scheme Using Buffer Pair<br/>2.3 Separation of Lexical Analysis and Syntax Analysis<br/>2.4 Specification of Tokens<br/>2.5 Tokens, Patterns and Lexemes<br/>2.6 Attributes for Tokens<br/>2.7 Lexical Analyser and Symbol Table<br/>2.8 Regular Expression<br/>2.9 Transition Diagram<br/>2.10 Recognition of Tokens<br/>2.11 Lexical Errors<br/>2.12 NFA and DFA for Lexical Analysis<br/>2.12.1 Combining NFAs of Different Patterns into a Single NFA<br/>2.13 Regular Expression to NFA<br/>2.14 NFA to DFA Conversion<br/>2.15 Regular Expression to DFA<br/>2.15.1 Direct Method for Conversion of RE to DFA<br/>2.16 DFA Minimisation<br/>Summary<br/>Exercises<br/>Review Questions<br/>Practice Questions<br/>Programming Questions<br/><br/>3. Syntax Analysis<br/>Objectives<br/>3.1 Introduction to Syntax Analysis<br/>3.2 Types of Grammars<br/>3.3 Context-free Grammar<br/>3.4 Derivation<br/>3.5 Ambiguous Grammar<br/>3.6 Top-down Parsing<br/>3.6.1 Non-predictive Parsing<br/>3.6.2 Predictive Top-down Parsing<br/>3.7 LL(1) – Predictive Top-down Parser<br/>3.8 Bottom-up Parsing<br/>3.8.1 Handle and Viable Prefix<br/>3.8.2 Shift-reduce Parsers<br/>3.9 Simple LR Parser (SLR)<br/>3.10 Canonical LR Parser (CLR)<br/>3.11 LALR Parser<br/>3.12 Ambiguous Grammars in LR Parsing<br/>3.13 Parser Conflicts<br/>3.14 Handling Ambiguous Grammars in LALR Parser<br/>3.15 Selection of Parsing Algorithm<br/>3.16 Comparison of LR Parsers<br/>3.17 Applications of the LR Parser<br/>3.18 LR Parser in Natural Language Processing<br/>Summary<br/>Exercises<br/>Review Questions<br/>Practice Questions<br/>Programming Questions<br/><br/>4. Syntax-directed Translation and Semantic Analysis<br/>Objectives<br/>4.1 Introduction to Semantic Analysis and Type Checking<br/>4.2 Attributes and Specification of Semantic Rules<br/>4.3 Syntax-directed Definition<br/>4.4 Syntax-directed Translation Scheme<br/>4.5 Dependency Graph<br/>4.6 Methods to Calculate Semantic Rules<br/>4.7 Evaluation Order of Semantic Rules<br/>4.8 Syntax Trees<br/>4.9 Directed Acyclic Graph Construction<br/>4.10 Type and Type Checking<br/>4.10.1 Basic Types and Constructed Types<br/>4.10.2 Type System and Type Checker<br/>4.10.3 Type Expressions<br/>4.10.4 Operator and Function Overloading<br/>4.10.5 Static and Dynamic Typing<br/>4.10.6 Encoding of Type Expressions<br/>4.11 A Simple Type Checking System<br/>4.12 Type Conversion<br/>4.12.1 Coercion<br/>4.13 Type Equivalence<br/>Summary<br/>Exercises<br/>Review Questions<br/>Practice Questions<br/>Programming Questions<br/><br/>5. Intermediate Code Generation Using Syntax-directed Translations<br/>Objectives<br/>5.1 Introduction to Intermediate Code Generation<br/>5.2 Intermediate Code Representation<br/>5.3 Syntax-directed Translation into Three-address Code – Principle<br/>5.4 Syntax-directed Translation of Assignment Statement into Three-address Code<br/>5.4.1 Assignment Statement<br/>5.5 Syntax-directed Translation to TAC for Boolean Expressions<br/>5.5.1 Method 1: Numerical Representation<br/>5.5.2 Method 2: Short Circuit Code<br/>5.6 Syntax-directed Translation into TAC for Programming Language Control Structures<br/>Using Backpatching<br/>5.6.1 If-then Construct<br/>5.6.2 If-then-else Construct<br/>5.6.3 While Loop<br/>5.6.4 Do-while Loop<br/>5.6.5 For Loop<br/>5.6.6 Repeat-Until<br/>5.7 Syntax-directed Translation of Arrays to TAC<br/>5.8 Syntax-directed Translation to TAC for the Switch-Case Statement<br/>5.9 Syntax-directed Translation to TAC for Procedures<br/>5.10 Syntax-directed Translation to TAC for Declarations<br/>Summary<br/>Exercises<br/>Review Questions<br/>Practice Questions<br/><br/>6. Code Optimisation<br/>Objectives<br/>6.1 Introduction<br/>6.2 Machine-independent Optimisation<br/>6.2.1 Common Sub-expression Elimination<br/>6.2.2 Algebraic Simplification and Strength Reduction<br/>6.2.3 Dead Code Elimination<br/>6.2.4 Copy Propagation<br/>6.2.5 Constant Propagation<br/>6.2.6 Constant Folding<br/>6.2.7 Function Inlining and Cloning<br/>6.2.8 Loop Optimisation<br/>6.3 Machine-dependent Optimisation<br/>6.3.1 Peephole Optimisation<br/>Summary<br/>Exercises<br/>Review Questions<br/>Practice Questions<br/>Programming Questions<br/><br/>7. Code Generation<br/>Objectives<br/>7.1 Introduction to Code Generation<br/>7.2 Problems in Code Generator Design<br/>7.3 Target Machine<br/>7.4 Instruction Cost<br/>7.5 Simple Code Generation<br/>7.5.1 Code Generation for a Three-address Statement of the form X = Y op Z<br/>7.5.2 Reordering of Statements for Improved Cost of Generated Code<br/>7.5.3 Code Generation for a Three-address Statement of the Form X = Y<br/>7.5.4 Generating Code for Array Assignment and Pointer<br/>7.6 Code Generation Using DAG<br/>7.6.1 Heuristic for Finding the Optimal Order of Nodes in DAG<br/>7.6.2 Labelling Algorithm<br/>7.6.3 Code Generation From a Labelled Tree<br/>7.7 Register Allocation<br/>7.7.1 Global Register Allocation<br/>7.7.2 Register Assignment for an Outer Loop<br/>7.7.3 Register Allocation by Graph Colouring<br/>7.8 Code Generation by Dynamic Programming<br/>Summary<br/>Exercises<br/>Review Questions<br/>Practice Questions<br/>Programming Questions<br/><br/>8. Storage Management and Symbol Table<br/>Objectives<br/>8.1 Introduction to the Run-time Environment<br/>8.2 Storage Organisation<br/>8.3 Activation of Procedures<br/>8.3.1 Activation Tree<br/>8.3.2 Control Stack<br/>8.3.3 Activation Record<br/>8.4 Scope of Declaration<br/>8.5 Storage Allocation Strategies<br/>8.5.1 Static Storage Allocation<br/>8.5.2 Stack Storage Allocation<br/>8.5.3 Heap Storage Allocation<br/>8.6 Garbage Collection<br/>8.7 Parameter Passing<br/>8.8 Symbol Table<br/>8.9 Data Structure for Symbol Table<br/>8.9.1 Linear List<br/>8.9.2 Search Tree: Binary Search Tree<br/>8.9.3 Hash Table<br/>8.10 Scope of Information in Symbol Table<br/>Summary<br/>Exercises<br/>Review Questions<br/>Practice Questions<br/>Programming Questions<br/><br/>9. Error Handling<br/>Objectives<br/>9.1 Introduction to Error Generation and Error Handling<br/>9.2 Error Handling in Each Phase of Compilation<br/>9.3 Error Handling in Lexical Analysis Phase<br/>9.4 Error Handling in Syntax Analysis Phase<br/>9.4.1 Error Recovery in Predictive LL Parser<br/>9.4.2 Errors in Shift-Reduce Parsers (LR Parser)<br/>9.5 Error Handling in Semantic Analysis Phase<br/>Summary<br/>Exercises<br/>Review Questions<br/>Practice Questions<br/>Programming Questions<br/><br/>10. Compiler Construction Tools<br/>Objectives<br/>10.1 Introduction to Open Source Compiler Construction Tools<br/>10.2 Java Formal Languages and Automata Package (JFLAP)<br/>10.3 Scanner Generator: Lex<br/>10.3.1 Lex Source File<br/>10.3.2 Lex Regular Expressions<br/>10.3.3 Ambiguous Source Rules<br/>10.4 Parser Generator: Yet Another Compiler-Compiler (Yacc)<br/>10.5 JFlex and CUP<br/>10.6 ANTLR<br/>10.7 Other Tools and Techniques<br/>Summary<br/>Exercises<br/>Programming Questions<br/><br/>11. Functional Languages<br/>Objectives<br/>11.1 Introduction to Functional Languages<br/>11.2 Characteristics of Functional Languages<br/>11.3 Concepts in Functional Languages<br/>11.3.1 First Class Functions<br/>11.3.2 Pure Functions<br/>11.3.3 Higher-order Functions<br/>11.3.4 Closure<br/>11.3.5 Currying<br/>11.3.6 Lazy Evaluation<br/>11.3.7 Recursion<br/>11.4 Introduction to Lambda Notation/?-calculus<br/>11.4.1 Free and Bound Variables<br/>11.4.2 Substitution<br/>11.4.3 Arithmetic Computations<br/>11.4.4 Recursion<br/>11.5 Basic Compilation<br/>11.6 Polymorphic Type Checking<br/>11.7 Desugaring<br/>Summary<br/>Exercises<br/>Review Questions<br/><br/>12. Parallel Compilers and Scheduling<br/>Objectives<br/>12.1 Parallel Programming Concepts<br/>12.2 Processes and Threads<br/>12.3 Shared Memory and Message Passing<br/>12.4 NVCC for Parallel Compilation<br/>12.5 Dependency<br/>12.6 Iteration Spaces<br/>12.7 Affine Array Indexes<br/>Summary<br/>Exercises<br/>Review Questions<br/><br/>13. Programs on Compiler Design<br/>Objectives<br/>13.1 Regular Expressions in Python<br/>13.2 Programs for Different Phases of the Compiler<br/>Exercises<br/>Practice Questions<br/><br/>14. Solved Gate Questions<br/>Lexical Analysis<br/>Parsing<br/>SDTS<br/>Code Generation and Optimisation<br/>Memory Allocation<br/><br/>Index |
| 650 ## - Subject | |
| Subject | Computer programming |
| -- | preogramming language |
| -- | Compilers |
| 700 ## - Added Entry Personal Name | |
| Relator Code | auth. |
| Added Entry Personal Name | Khurana, Khushboo P. |
| 942 ## - ADDED ENTRY ELEMENTS (KOHA) | |
| Koha item type | REFERENCE COMPUTER SCIENCE |
| Withdrawn status | Lost status | Source of classification or shelving scheme | Damaged status | Not for loan | Koha collection | Location (home branch) | Sublocation or collection (holding branch) | Shelving location | Date acquired | Source of acquisition | Cost, normal purchase price | Serial Enumeration / chronology | Koha issues (times borrowed) | Koha full call number | Barcode (Accession No.) | Koha date last seen | Copy Number | Price effective from | Koha item type |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Dewey Decimal Classification | Not For Loan | Reference | St. Xavier's University, Kolkata | St. Xavier's University, Kolkata | Reference Section | 02/18/2026 | K.M. Enterprise | 915.00 | S.X.U.K | R 005.453 CHA(COM) | UCS 13931 | 02/18/2026 | 13931 | 02/18/2026 | REFERENCE COMPUTER SCIENCE | ||||
| Dewey Decimal Classification | St. Xavier's University, Kolkata | St. Xavier's University, Kolkata | Lending Section | 02/18/2026 | K.M. Enterprise | 915.00 | S.X.U.K | 005.453 CHA(COM) | CS 13932 | 02/18/2026 | 13932 | 02/18/2026 | COMPUTER SCIENCE | ||||||
| Dewey Decimal Classification | St. Xavier's University, Kolkata | St. Xavier's University, Kolkata | Lending Section | 02/18/2026 | K.M. Enterprise | 915.00 | S.X.U.K | 005.453 CHA(COM)C1 | CS 13933 | 02/18/2026 | 13933 | 02/18/2026 | COMPUTER SCIENCE |
