Unit I Introduction to system software and Assembler :
Introduction to system software, need,
Components: Assembler, Macro processor, Compiler, Interpreter, Loader,
Linker.
Assembler:
Elements of assembly language processing
A simple assembly scheme
Pass structure of Two Pass assembler
Design of II Pass assembler:
Processing of Imperative, Declarative and Assembler directives to be considered Pass I along with data structures, Flowchart Intermediate Code, Variants Pass II flow chart/algorithm Various data structures that can be used and their comparison
Concept Of Single Pass assembler: Backpatching, Comparison of single & II pass Assembler.
Unit II Macros
Macro definition and Call Macro Expansion Design of Macro Processor: Definition and expansion processing algorithms along with Data structures Nested Macro calls: Call within a call and definition within a definition – Flow chart along with one example to be discussed. C Preprocessor
Unit III Compiler I:
Phases of compiler
Block Diagram Discussion of simple assignment statement and the output generated by all phases by compiler
Lexical Analysis:
Finite Automata, Regular Expression, RE to DFA Implementation of lexical Analyzer
Syntax Analysis
Context Free Grammars Derivation of Parse Tress Parsers Top Down Parsers: Recursive Descent Parser, Predictive Parser Bottom Up Parsing : Shift Reduce Parser, SLR parser
Unit IV Compiler II:
Intermediate code formats
Postfix notation, Parse and syntax tress, Three address code, quadruples and triples Quadruple generation for 1D and 2D arrays
Code optimization:
Machine Independent: Common Subexpression elimination, removing of loop invariants, eduction in strengths. Machine dependent Issues: Assignment and use of registers, Rearrangement of Quadruples for code optimization.
Issues of Code generation
Unit V Loaders and Linkers:
Loader Schemes
Compile and Go Loader Scheme
General Loader Scheme
Absolute Loaders
Subroutine Linkages
Relocating Loaders
Direct Linking Loaders
Design of Absolute Loader
Design of Direct Linking Loader
Specification of Problem
Specification of Data Structures
Format of Data Bases
Algorithm/Flowchart
Dynamic linking
Other Loading Schemes: Binders, Linking Loaders, Overlays,
Dynamic Binders.
Unit VI System Software Development Tools:
Software tools for program development
Editors
Debug monitors
Programming Environment
User Interfaces
Lex and Yacc
Text Books:
1. John J Donovan ,”Systems Programming”, Tata McGraw-Hill Edition 1991, ISBN 0-07-460482-1
2. D.M. Dhamdhere ,”Systems Programming and Operating Systems”, Tata McGraw-Hill, ISBN-13:978-0-07-463579-7
3. E. Balgurusamy, “Programming in ANSI C”, 4th Edition, Tata McGraw-Hill , ISBN 0- 07-064822-0
Reference Books:
1. Leland L. Beck, “System Software An Introduction to Systems Programmming” 3rd Edition, Person Education, ISBN 81-7808-036-2