System Programming and Compiler Construction

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

System

Programming
and Compiler
Construction
Includes Labs

THE BOOK COVERS









System software
Assemblers
Macros and Macro
Processors
Loaders and Linkers
Software Tools
Compilers
Lexical Analysis
Syntax Analysis

Syntax Directed
Translation
Intermediate Code
Generation
Code Generation
Code Optimization
Runtime Storage
Java Compiler
Environment and YACC

ABOUT THE BOOK

` 429/ISBN: 9789351197195 Pages: 572 Authors: Maurya, Godbole

The book will help you to understand the role and functioning of various system programs over application program and initiate an
understanding of compilers as well as phases of compiler. It will also provide theoretical framework for optimizing the code and use of
various software tools for developing system programs.

IN THIS BOOK, YOU WILL LEARN ABOUT















System Software: Concept; various system programs; assemblers; loaders; linkers; macro processors; compilers; interpreters; operating systems; device drivers
Assemblers: General design process; design of assembler; single pass - assembler IBM PC; multi pass Assembler - IBM 360/370 processors; statement of
problem; data structure; format of databases; Algorithm; look for modularity
Macros and Macro Processors: Macro instructions; features of macro facility; design of 2 pass macroprocessor
Loaders and Linkers: Loader schemes; design of absolute loader; design of direct linking loader
Software Tools: Software tools for program development; editors; types of editors; design of editor; debug monitors
Compilers: Phase of a compiler; comparison of compilers and interpreters
Lexical Analysis: Role of a lexical analyzer; input buffering; specification and recognition of tokens; designing a lexical analyzer generator; pattern matching
based on NFAs
Syntax Analysis: Role of parser; top-down parsing; recursive descent and predictive parsers (LL); bottom-up parsing; operator precedence parsing; LR, SLR and
LALR Parsers
Syntax Directed Translation: Syntax directed definitions; inherited and synthesized attributes; evaluation order for SDDs; S attributed definitions; L attributed
definitions
Intermediate Code Generation: Intermediate languages; declarations; assignment statements; boolean expression; case statements; back patching;
procedure calls
Code Generation: Issues in the design of code generator; basic blocks and flow graphs; code generation algorithm; DAG representation of basic blocks
Code Optimization: Principal sources of optimization; optimization of basic blocks; loops in flow graphs; peephole optimization;
Runtime Storage: Storage optimization; storage allocation strategies; parameter passing; symbol table; garbage collection and compaction
Java Compiler Environment: YACC Compilers

ABOUT THE AUTHORS

Rajesh K. Maurya, Associate Professor and Associate Dean, is presently teaching at Department of Computer Applications, DESs Navinchandra Mehta Institute
of Technology & Development, Mumbai. He has rich experience of more than 13 years in teaching System Programming, Compiler Design, Computer Graphics,
Image Processing along with System Software, Artificial Intelligence for Under Graduate and Post graduate Students of science, technology and applications
at various colleges affiliated to University of Mumbai and S.N.D.T University. He has authored many books including Computer Graphics with Virtual Reality
Systems, System Programming, Software Testing and Compiler Design. A member of many professional and academic bodies, he has contributed to the
growth of subjects in various capacities. Prof. Mauryas areas of active research include image processing, intelligent systems and multimedia computing.
Anand A. Godbole, Associate Professor and Former H.O.D of Computer Engineering Department, is presently teaching at Sardar Patel Institute of TechnologyAndheri. He has rich experience of more than 20 years in teaching System Programming, Compiler Design, Computer Graphics, Data structures, Analysis
of algorithms for Under Graduate and Advanced Algorithm and Complexity, Advanced Compiler Design, Parallel Computing at Post graduate Students of
engineering affiliated to University of Mumbai. Prof. Godbole areas of active research include Artificial Intelligence, Compiler Construction, Mobile Computing.
/dtechpress

/dtechpress

/dreamtechpress

dreamtechpress.wordpress.com

/company/dreamtech-press

TABLE OF CONTENTS
1 System Software
yy Concept of System Software

yy
yy
yy
yy
yy

Types of Software Programs


Software Programs and the Computing
Machine
Inroduction to Various Systems Programs
Assembler
Loader and Linker
Macro Processors
Compiler
Analysis Phase: The Front End of the
Compiler
Synthesis Phase: The Back-End of the
Compiler
Interpreters...and more

yy
2 Assemblers
yy Basic Functions of Assemblers
yy General Design Procedure

Assembly Language Programming

yy Design of Assembler and Overview of Assembly

9 Syntax-Directed Translation
yy Introduction to Syntax-Directed Translation
yy Syntax-Directed Definitions
Passes Structure of Direct-Linking Loaders
yy Inherited and Synthesized Attributes
Linker Command Languages ...and more
yy Evaluation Order of SDD
5 Software Tool
Dependency Graphs
Type Expressions
yy Steps Involved in Program Development
yy L-Attributed Definitions
...and more
yy Software Tools
Functions Provided by Software Tools
10 Intermediate Code Generation
yy Tools Used in Program Development
yy Intermediate Languages
Tools Used for Designing and Coding
Linking of Object Modules

yy Design of Absolute Loaders


yy Design of Direct-Linking Loaders

Tools Used for Program Entry and Editing

yy Editors

Types of Editors
Features Provided by an Editor ...and more

6 Compiler
yy Overview of Translation Process
yy Introduction to Compiler

Types of Compilers
Analysis-Synthesis Model Compilation
yy The Phases of a Compiler
Lexical Analysis Phase
Syntax Analysis Phase
yy Difference between an Interpreter, Assembler,
and Compiler
yy Cousins of the Compiler
Preprocessors
Assembler
...and more

High-Level IRs
Low-Level IRs
Intermedia Code for Assignment Statements
Intermediate Code Generation for Arrays
Intermediate Code for Boolean Expressions
Back Patching
...and more

yy
yy
yy
yy
11 Code Generation
yy Major Tasks in Code Generation
yy Design Issues of a Code Generator

Process
Input for Code Generators
Analysis and Synthesis
Output from the Code Generator
yy Single Pass Assembler for IBM PC
yy Generating Code for the Target Machine
Intel 8086/8088 Architecture
Addressing Modes
Addressing Modes and Instruction Formats
Program and Instruction Cost
yy Design of Multipass Assembler
yy Runtime Storage Management for Code
Pass I of Assembler
Generation
Pass II of Assembler
Stack Allocation
yy IBM 360/370 Processors
Caller Calling Callee
...and more
7 Lexical Analysis
Statement of the Problem
1 2 Code Optimization
Data Structure and Databases
yy Role of Lexical Analyzer
yy Comparison of Single-Pass and Two-Pass
yy Input Buffering
yy Classification of Compiler Optimization
Assemblers
yy Specification of Tokens
yy Principal Sources of Optimization for Compiler
yy Output Interface of Assembler
...and more
Tokens, Patterns, and Lexemes
Compile-Time Evaluation

Elements
of
Token
Design
Common Sub-Expression Elimination
3 Macro and Macro Processors
yy Recognition of Tokens
yy Global Data Flow Analysis
yy Macro and Macro Processors
Transition Diagrams
Available Expressions
Differences between Macro and
Finite-State Automata
Reaching Definitions
Subroutines
yy Designing a Lexical Analyzer Generator
yy Loops in Flow Graphs
...and more
yy Macro Instruction-Definition and Call
Recognizer for Identifiers
Macro Expansion
13 Run-Time Storage
Language for Specifying Lexical Analyzer
Handling Macro Calls
yy Source Language Issues
yy Pattern Matching Using NFA
yy Features of Macro Facility
DFAs for Lexical Analyzers
yy Storage Organization
Lexical Expansion and Parameter
yy Optimizing of DFA
...and more
The Run-Time Storage Organization
Substitution
Allocation of Simple Data Objects
Flow of Control during Expansion
8 Syntax Analysis
yy Storage Allocation Strategies
yy Design of Two-pass Macro Processors
yy Role of Parser
Static Allocation
Functions of a Macro Preprocessor
Types of Parsing: Top-Down and Bottom-Up
Stack Allocation
Databases for Macro Processing...and more
Parsing Algorithms
yy Management of Variable-Length Blocks
4 Loaders and Linkers
yy Top-Down Parsing
Run-Time Allocation Using Stacks
Top-Down Parsing Based on Prediction and
yy Loader and Linkers
Run-Time Allocation Using Heaps ...and more
Backtracking
Functions of Loader
14 Compiler-Compilers
Recursive Productions
yy Loader Schemes
yy Recursive Descent and Predictive Parser
yy Java Compiler Environment
Compile and Go Loaders
The Java Compiler: javac
yy LL Parsers
General Loading Scheme
Overview of Compilation
LL(1) Parsers
yy More into Relocation and Linking
yy YACC Compiler-Compiler
yy Bottom-Up Parser
Types of Program Address
Working of Yacc
Shift-Reduce Parsers
Relocating Programs
The Yacc File Format
Precedence Parsers
yy Design of Loader and Linker
Relocation of Object Module
yy Lab...and more
yy Simple Precedence Parsing
...and more
Published by:

/dtechpress

DREAMTECH PRESS
WILEY INDIA PVT. LTD.
19-A, Ansari Road, Daryaganj
4435-36/7, Ansari Road, Daryaganj
New Delhi-110 002, INDIA
New Delhi-110 002, INDIA
Tel: +91-11-2324 3463-73, Fax: +91-11-2324 3078
Tel: +91-11-4363 0000, Fax: +91-11-2327 5895
Email: [email protected]
Email: [email protected]
Website: www.dreamtechpress.com
Website: www.wileyindia.com
Regional Offices: Bangalore: Tel: +91-80-2313 2383, Fax: +91-80-2312 4319, Email: [email protected]
Mumbai: Tel: +91-22-2788 9263, 2788 9272, Telefax: +91-22-2788 9263, Email: [email protected]
/dtechpress

/dreamtechpress

dreamtechpress.wordpress.com

Execlusively
Distributed by:

/company/dreamtech-press

You might also like