System Programming and Compiler Construction (Includes Labs)

R.K. Maurya

ISBN: 9789351197195

572 pages

INR 429

Description

The book helps 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 also provide theoretical framework for optimizing the code and use of various software tools for developing system programs.

Chapter 1:  System Software

1.1 Concept of System Software

1.2 Inroduction to Various Systems Programs

1.3 Assembler

1.4 Loader and Linker

1.5 Macro Processors

1.6 Compiler

1.7 Interpreters

1.8 Operating System

1.9 Device Drivers

 

Chapter 2:  Assemblers

2.1 Basic Functions of Assemblers

2.2 General Design Procedure

2.3 Design of Assembler and Overview of Assembly Process

2.4 Single Pass Assembler for IBM PC

2.5 Design of Multipass Assembler

2.6 IBM 360/370 Processors

2.7 Comparison of Single-Pass and Two-Pass Assemblers

2.8 Output Interface of Assembler

 

Chapter 3:  Macro and Macro Processors

3.1 Macro and Macro Processors

3.2 Macro Instruction-Definition and Call

3.3 Features of Macro Facility

3.4 Design of Two-pass Macro Processors

 

Chapter 4:  Loaders and Linkers

4.1 Loader and Linkers

4.2 Loader Schemes

4.3 More into Relocation and Linking

4.4 Design of Loader and Linker

4.5 Design of Absolute Loaders

4.6 Design of Direct-Linking Loaders

 

Chapter 5:  Software Tool

5.1 Steps Involved in Program Development

5.2 Software Tools

5.3 Tools Used in Program Development

5.4 Editors

 

Chapter 6:  Compiler

6.1 Overview of Translation Process

6.2 Introduction to Compiler

6.3 The Phases of a Compiler

6.4 Difference between an Interpreter, Assembler, and Compiler

6.5 Cousins of the Compiler

 

Chapter 7:  Lexical Analysis

7.1 Role of Lexical Analyzer

7.2 Input Buffering

7.3 Specification of Tokens

7.4 Recognition of Tokens

7.5 Designing a Lexical Analyzer Generator

7.6 Pattern Matching Using NFA

7.7 Optimizing of DFA

 

Chapter 8:  Syntax Analysis

8.1 Role of Parser

8.2 Top-Down Parsing

8.3 Recursive Descent and Predictive Parser

8.4 LL Parsers

8.5 Bottom-Up Parser

8.6 Simple Precedence Parsing

8.7 Operator Precedence Parsing

8.8 Precedence Functions

8.9 LR Parsers

8.10 LR(0) Parsing

8.11 SLR(1) Parsers

8.12 LR(1) Parsers

8.13 LALR(1) Parser

8.14 Parser Generators

8.15 Using Ambiguous Grammar with LR Parsers

 

Chapter 9:  Syntax-Directed Translation

9.1 Introduction to Syntax-Directed Translation

9.2 Syntax-Directed Definitions

9.3 Inherited and Synthesized Attributes

9.4 Evaluation Order of SDD

9.5 L-Attributed Definitions

9.6 Syntax-Directed Translation Scheme

9.7 Error Detection and Recovery

 

Chapter 10:  Intermediate Code Generation

10.1 Intermediate Languages

10.2 Intermedia Code for Assignment Statements

10.3 Intermediate Code Generation for Arrays

10.4 Intermediate Code for Boolean Expressions

10.5 Back Patching

10.6 Conditional and Iterative Control Flow

10.7 Code for Switch Statements

10.8 Computing l- and r-Values

10.9 Procedure Calls

10.10 Translation of Mixed-Mode Expressions

 

Chapter 11:  Code Generation

11.1 Major Tasks in Code Generation

11.2 Design Issues of a Code Generator

11.3 Generating Code for the Target Machine

11.4 Runtime Storage Management for Code Generation

11.5 Basic Blocks and Flow Graphs

11.6 Code geneartion Algorithm

11.7 The DAG Representation of Basic Blocks

11.8 Generating Code from DAGs

11.9 Dynamic Programming Code-Generation Algorithm

11.10 Code-Generator Generators

 

Chapter 12:  Code Optimization

12.1 Classification of Compiler Optimization

12.2 Principal Sources of Optimization for Compiler

12.3 Global Data Flow Analysis

12.4 Loops in Flow Graphs

12.5 Optimizations of Basic Blocks

12.6 Peephole Optimization

 

Chapter 13:  Run-Time Storage

13.1 Source Language Issues

13.2 Storage Organization

13.3 Storage Allocation Strategies

13.4 Management of Variable-Length Blocks

13.5 Passing Parameters

13.6 Symbol Table

13.7 Introduction to Garbage Collection and Compaction

13.8 Dynamic Storage Allocation Techniques

 

Chapter 14:  Compiler-Compilers

14.1 Java Compiler Environment

14.2 YACC Compiler-Compiler

 

Lab

Index