Compilers : (Record no. 25544)

MARC details
000 -LEADER
fixed length control field 11120nam a22004093i 4500
001 - CONTROL NUMBER
control field EBC5124983
003 - CONTROL NUMBER IDENTIFIER
control field MiAaPQ
005 - DATE AND TIME OF LATEST TRANSACTION
control field 20190104145554.0
006 - FIXED-LENGTH DATA ELEMENTS--ADDITIONAL MATERIAL CHARACTERISTICS--GENERAL INFORMATION
fixed length control field m o d |
007 - PHYSICAL DESCRIPTION FIXED FIELD--GENERAL INFORMATION
fixed length control field cr cnu||||||||
008 - FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION
fixed length control field 181231s2012 xx o ||||0 eng d
020 ## - INTERNATIONAL STANDARD BOOK NUMBER
International Standard Book Number 9788131776117
Qualifying information (electronic bk.)
035 ## - SYSTEM CONTROL NUMBER
System control number (MiAaPQ)EBC5124983
035 ## - SYSTEM CONTROL NUMBER
System control number (Au-PeEL)EBL5124983
035 ## - SYSTEM CONTROL NUMBER
System control number (CaONFJC)MIL475716
035 ## - SYSTEM CONTROL NUMBER
System control number (OCoLC)1024273426
040 ## - CATALOGING SOURCE
Original cataloging agency MiAaPQ
Language of cataloging eng
Description conventions rda
-- pn
Transcribing agency MiAaPQ
Modifying agency MiAaPQ
082 ## - DEWEY DECIMAL CLASSIFICATION NUMBER
Edition number 23
Classification number 005.453 DAV-C
100 1# - MAIN ENTRY--PERSONAL NAME
Personal name Dave, Parag H.
245 10 - TITLE STATEMENT
Title Compilers :
Remainder of title Principles and Practice.
250 ## - EDITION STATEMENT
Edition statement 0
300 ## - PHYSICAL DESCRIPTION
Extent 1 online resource (536 pages)
505 0# - FORMATTED CONTENTS NOTE
Formatted contents note Cover -- Contents -- List of Figures -- List of Tables -- List of Algorithms -- Preface -- Acknowledgements -- Chapter 1: Introduction -- 1.1 Languages -- 1.1.1 Machine Language -- 1.1.2 Hex AbsoluteLoaderLanguage -- 1.1.3 Assembly Language -- 1.1.4 Macro Assembly Language -- 1.1.5 Intermediate or ByteCode -- 1.1.6 High Level Language -- 1.1.7 Very High Level Language -- 1.1.8 Why High Level Language? -- 1.2 Translation Process -- 1.3 Translation Schemes -- 1.3.1 T-diagram -- 1.3.2 Assembler -- 1.3.3 Macro Assembler -- 1.3.4 Interpreter -- 1.3.5 Load-and-Go Scheme -- 1.3.6 Compiler -- 1.3.7 What Does a Compiler Do? -- 1.4 Theoretical Viewpoint -- 1.4.1 Acceptor and Compiler -- 1.5 Phases of a Compiler -- 1.6 A More Detailed Look at Phases of a Compiler -- 1.6.1 Lexical Analyzer - Scanner -- 1.6.2 SyntaxAnalyzer - Parser -- 1.6.3 Semantic Analyzer - Mapper -- 1.6.4 Code Generation and Machine-dependent Optimization -- 1.6.5 Optimization -- 1.6.6 How to Develop Optimized Code? -- 1.7 A Real-life Compiler-gcc -- 1.8 What Do We Mean by "Meaning"? -- Looking Forward -- Historical Notes -- Exercises -- Web Resources -- Glossary -- Chapter 2: A Simple Translator -- 2.1 A Simple Language -- 2.1.1 Grammar of simple -- 2.1.2 Target Language -- 2.1.3 Example Program in Machine Code -- 2.2 Compiler for Simple -- 2.2.1 Scanner -- 2.2.2 Parser -- 2.2.3 Intermediate Form and Semantic Phase -- 2.2.4 Code Generation -- 2.2.5 Comments on the Compiled Code -- 2.3 A Virtual Machine for Simple -- Looking Forward -- Exercises -- Web Resources -- Glossary -- Chapter 3: Lexical Analyzer -- 3.1 Scanner -- 3.1.1 Examples: RE, FSM and Implementation -- 3.2 Symbol Tables and a Scanner -- 3.3 Compiler Writing Tools -- 3.3.1 Lex - A Scanner Generator -- 3.3.2 Flex -- 3.3.3 Debugging lex and flex -- 3.4 Error Handling in a Scanner -- Exercises -- Web Resources -- Glossary.
505 8# - FORMATTED CONTENTS NOTE
Formatted contents note Chapter 4: Syntax Analyzer -- 4.1 Top-down and Bottom-up Parsing -- 4.2 Top-down Parsing -- 4.2.1 Recursive-descent Parser (RDP) -- 4.2.2 Exercises -- 4.2.3 Parser for Simple LL(1) Grammars -- 4.2.4 LL(1) Grammar Without (Sf(B-rules -- 4.2.5 LL(1) Grammars with (Sf(B-rules -- 4.3 Bottom-up Parsing -- 4.3.1 Shift/Reduce Parsing -- 4.3.2 Operator Precedence Parsing -- 4.3.3 LR Grammars -- 4.3.4 FSM for an LR(0) Parser -- 4.3.5 Design of the FSM for an LR(0) Parser -- 4.3.6 Table-driven LR(0) Parser -- 4.3.7 Parsing Decision Conflicts -- 4.3.8 Canonical LR(1) Parser -- 4.3.9 SLR(1) Parser -- 4.3.10 Conflict Situations -- 4.3.11 Look-ahead (LA) Sets -- 4.3.12 LALR(1) Parser -- 4.4 Yacc - A Parser Generator -- 4.4.1 YACC - A Compiler Writing Tool -- 4.4.2 Working of the Parser Generated by YACC -- 4.4.3 Input Specification -- 4.4.4 Recursion in Grammar Specification -- 4.4.5 Actions -- 4.4.6 Ambiguity and Conflict Resolution -- 4.4.7 Error Handling -- 4.4.8 Arbitrary Value Types -- 4.4.9 Debugging yacc -- 4.4.10 Working Examples -- 4.5 Other Parser Generators -- 4.5.1 Bison -- 4.5.2 Parse::Yapp -- 4.5.3 ANTLR -- 4.6 Grammar for miniC -- 4.7 Symbol Table and Parser -- 4.7.1 Pre-defined Entities -- 4.8 Real-life - GCC: GNU Compiler Collection -- Exercises -- Web Resources -- Further Reading -- Glossary -- Chapter 5: Syntax-directed Translation -- 5.1 Implicit Stacking in RDP -- 5.2 Synchronized Semantic Stacks -- 5.2.1 Semantic Stack in yacc -- 5.3 Action Symbols -- 5.3.1 Action Symbols in yacc -- 5.4 Attribute Grammars -- 5.4.1 Syntax-directed Techniques -- 5.4.2 Definition of Attribute Grammar -- 5.4.3 Dependency Graphs -- 5.4.4 Definitions: Inherited and Synthesized Attributes -- 5.4.5 S-Type Definitions and Grammars -- 5.4.6 L-Type Definitions and Grammars -- 5.4.7 Synthesized and Inherited Attributes in yacc -- 5.4.8 More on Inherited Attributes in yacc.
505 8# - FORMATTED CONTENTS NOTE
Formatted contents note 5.5 Symbol Table Handling -- 5.5.1 Symbol Table in miniC -- 5.6 Intermediate Representation Output for miniC -- Exercises -- Web Resources -- Further Reading -- Glossary -- Chapter 6: Type Checking -- 6.1 Data Types and Type Checking -- 6.2 Type Expressions and Type Constructors -- 6.3 Type Equivalence -- 6.4 Type Names, Declarations and Recursive Types -- 6.4.1 Recursive Types -- 6.5 Type Inference -- 6.5.1 Formal Semantics -- 6.6 Type Conversion and Coercion -- 6.7 Overloading of Operators and Functions -- 6.8 Example: Type Checking in an Interpreter -- Exercises -- Web Resources -- Further Reading -- Glossary -- Chapter 7: Run-Time Environment -- 7.1 Run-Time Storage Allocation -- 7.1.1 Static Allocation -- 7.1.2 Typical Function Calls Interface for C -- 7.1.3 Dynamic Allocation -- 7.1.4 Nested Functions in GCC Extension -- 7.1.5 On-demand or Heap Allocation -- 7.1.6 Parameter Passing and Calling Conventions -- 7.1.7 C Variables -- 7.1.8 Block-structured Languages -- 7.2 Operating System -- 7.2.1 A Running Program - A Process -- 7.2.2 Linux System Calls -- 7.3 Libraries -- 7.3.1 Language Library -- 7.3.2 Special Purpose Libraries -- 7.4 System Environmental Variables -- 7.5 Invocation Command-line Parameters -- Exercises -- Web Resources -- Further Reading -- Glossary -- Chapter 8: Intermediate Code -- 8.1 Building a Parse Tree -- 8.1.1 Generating Parse Tree in Memory -- 8.2 Polish Notation -- 8.2.1 Generating RPN -- 8.3 N-tuple Notation -- 8.3.1 Triple notation -- 8.3.2 Quadruple Notation -- 8.3.3 Generation of N-tuple Code -- 8.4 Abstract Syntax Tree -- 8.4.1 Generating Abstract Syntax Tree -- 8.5 Abstract or Virtual Machine Code -- 8.5.1 P-code for a PASCAL Machine -- 8.5.2 Java Bytecode -- 8.6 Threaded Code -- 8.6.1 Subroutine Threaded Code -- 8.6.2 Direct Threaded Code -- 8.6.3 Indirect Threaded Code -- 8.6.4 Token Threaded Code.
505 8# - FORMATTED CONTENTS NOTE
Formatted contents note 8.6.5 Implementation of Threaded Code on Motorola 68000 -- 8.6.6 Implementation of Threaded Code on Intel x86 Machines -- 8.7 SECD and WAM -- 8.8 Grammar and IR Generation for miniC -- 8.8.1 Expressions -- 8.8.2 Assignments -- 8.8.3 Statements -- 8.8.4 IF-THEN and IF-THEN-ELSE -- 8.8.5 WHILE-DO -- 8.8.6 Variable Declarations -- 8.8.7 Function Definitions -- 8.8.8 Function Calls -- 8.8.9 Utility Functions Used -- 8.9 Real-life: Intermediate Codes of GNU gcc -- 8.9.1 Example GCC Intermediate Code -- Exercises -- Further Reading -- Glossary -- Chapter 9: Code Generation and Machine-dependent Optimization -- 9.1 Our Concerns in Code Generation -- 9.1.1 Input Intermediate Representation (IR) -- 9.1.2 Nature of Target Language -- 9.1.3 Selection of Alternatives from Instruction Set -- 9.1.4 Allocation of CPU Registers -- 9.1.5 Order of Evaluation Sequence -- 9.2 The Target Language -- 9.2.1 x86 Assembly Language in GAS Syntax -- 9.3 Data Structures -- 9.3.1 Vectors and Arrays -- 9.3.2 Vectors -- 9.3.3 Arrays -- 9.4 Control Constructs -- 9.5 Procedures and Function Calls -- 9.5.1 Function Prologue and Epilogue -- 9.5.2 Saving Registers -- 9.5.3 A Test for C Linkage -- 9.6 The Target Operating Environment -- 9.6.1 Memory Management -- 9.6.2 CPU Register Usage -- 9.6.3 Activation Record (AR) -- 9.7 Code Optimization -- 9.8 Machine-dependent Optimization -- 9.8.1 Register Allocation -- 9.8.2 Instruction Rescheduling: Use of Parallelism in Instruction Execution -- 9.9 Converting the 4-Tuple and RPN into Assembly Code -- 9.9.1 Conversion of 4-Tuple to Assembly Code -- 9.9.2 Conversion of RPN to Assembly Code -- Exercises -- Further Reading -- Glossary -- Chapter 10: Code Optimization -- 10.1 Basic Blocks -- 10.1.1 Formal Algorithm to Delineate BBs -- 10.1.2 Reference and Define Information -- 10.1.3 Loops in Flow-graphs -- 10.1.4 Example Implementation - miniC.
505 8# - FORMATTED CONTENTS NOTE
Formatted contents note 10.2 Value Numbering Scheme -- 10.3 Peep-hole Optimization -- 10.3.1 Strength Reduction -- 10.3.2 Constant Folding -- 10.3.3 Constant Propagation -- 10.3.4 Dead Variable and Dead Code Elimination -- 10.4 Structural Optimization -- 10.4.1 Redundant Sub-expressions -- 10.4.2 Loop Unwinding -- 10.4.3 Replace Index by Pointers -- 10.4.4 Code Motion -- 10.4.5 Variable Folding -- 10.4.6 In-line Function -- 10.4.7 Register Allocation -- 10.5 Global Data-flow Analysis -- 10.6 Super-optimizers -- 10.6.1 Massalin's Super-optimizer -- 10.6.2 GNU GCC Super-optimizer - GSO -- 10.7 Epilogue -- Exercises -- Further Reading -- Glossary -- Chapter 11: Overview of Processing of Some Languages -- 11.1 Java -- 11.1.1 Brief History -- 11.1.2 Overview -- 11.1.3 Characteristics of Java -- 11.1.4 Development with Java -- 11.1.5 The First Java Program -- 11.1.6 Type Conversion -- 11.2 Perl -- 11.2.1 Perl Internals -- 11.3 PROLOG -- 11.3.1 A Short Introduction to PROLOG -- 11.4 FORTH -- 11.4.1 Hello World in Forth -- 11.4.2 A Quick Introduction to FORTH -- 11.4.3 Summary -- 11.4.4 Vmgen -- Exercises -- Web Resources -- Chapter 12: Project: Compiler for a MiniC -- 12.1 MiniC Language -- 12.1.1 What is HOC6? -- 12.1.2 Objectives of miniC -- 12.2 Architecture of miniC Compiler -- 12.3 MiniC Grammar for yacc -- 12.4 Target Language -- 12.4.1 x86 Instructions -- 12.4.2 Assembler Directives -- 12.4.3 Floating-point Instructions -- 12.5 Symbol Table -- 12.6 Scanner -- 12.7 Parser -- 12.8 Code Generation -- 12.8.1 Arithmetic Expression -- 12.8.2 Assignment -- 12.8.3 Comparison with Logical Result -- 12.8.4 Integer Increment and Decrement -- 12.8.5 IF-THEN-ELSE Construct -- 12.8.6 Function Definition and Call -- 12.8.7 Assembly Language Macros -- 12.8.8 Built-in Functions Library -- 12.8.9 A Few Example miniC Programs -- 12.8.10 Assembly Language Idioms -- 12.8.11 Linux System Calls.
505 8# - FORMATTED CONTENTS NOTE
Formatted contents note 12.9 Testing.
520 ## - SUMMARY, ETC.
Summary, etc Compilers: Principles and Practice explains the phases and implementation of compilers and interpreters, using a large number of real-life examples. It includes examples from modern software practices such as Linux, GNU Compiler Collection (GCC) and Perl. This book has been class-tested and tuned to the requirements of undergraduate computer engineering courses across universities in India.
590 ## - LOCAL NOTE (RLIN)
Local note Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2018. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
655 #4 - INDEX TERM--GENRE/FORM
Genre/form data or focus term Electronic books.
700 1# - ADDED ENTRY--PERSONAL NAME
Personal name Dave, Himanshu B.
776 08 - ADDITIONAL PHYSICAL FORM ENTRY
Display text Print version:
Main entry heading Dave, Parag H.
Title Compilers : Principles and Practice
Place, publisher, and date of publication Noida : Pearson India,c2012
797 2# - LOCAL ADDED ENTRY--CORPORATE NAME (RLIN)
Corporate name or jurisdiction name as entry element ProQuest (Firm)
856 40 - ELECTRONIC LOCATION AND ACCESS
Uniform Resource Identifier <a href="https://ebookcentral.proquest.com/lib/cethalassery/detail.action?docID=5124983">https://ebookcentral.proquest.com/lib/cethalassery/detail.action?docID=5124983</a>
Public note Click to View
942 ## - ADDED ENTRY ELEMENTS (KOHA)
Source of classification or shelving scheme Dewey Decimal Classification
Koha item type Books
Holdings
Withdrawn status Lost status Source of classification or shelving scheme Materials specified (bound volume or other part) Damaged status Not for loan Home library Current library Shelving location Date acquired Total Checkouts Full call number Barcode Date last seen Price effective from Koha item type
    Dewey Decimal Classification Online access     CENTRAL LIBRARY Digital Library Digital Library 04/01/2019   005.453 DAV-C E0020 04/01/2019 04/01/2019 E- Books
Powered by Koha ILS
Page Design & Customization: Library Web Team CE Thalassery