System Software
Year / Semester: 
4th Semester

Unit 1: Introduction to System Software
Definition and classification of system software.

Unit 2: Assemblers
Assembly language, Assembly process, Data structures, Macros and macro processors.

Unit 3: Linkers and loaders
Basic concepts, Static and dynamic linking, shared libraries, loaders, overlays. Case study of the Unix linking system, Windows DLLs, OLEs.

Unit 4: Introduction to Compiling
Introduction: Phases of a compiler, Languages and grammer, Chomshy hierarchy.

Unit 5: Lexical Analysis
The role of lexical analyser, Signification of tokens, recognition of tokens, Finite automata, Lexical analyzer, Lexical analyzer generator(LEX)

Unit 6: Syntax Analysis
The role of Parser, context free grammers, Top-down and Bottom-up parsers, shift-reduce parser,  operator precedence parsing, LL(1), LR parsers, Parser generator (YACC)

Unit 7: Syntax Directed Translation
Syntax directed definition, Construction of syntax tree, Top-down and bottom-up translation, recursive evaluators

Unit 8: Code Generation
Intermediate code generation : intermediate langluages, declarations, assignment statements; code generator, runtime storage management ; Basics code optimization techniques


Suggested Readings: 

1. Robert Britton: MIPS Assembly Language Programming. Prentice Hall, 2003.
2. Compilers principles, techniques & Tools, Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman