System Software
Year / Semester: 
3rd 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