CS 303: SYSTEM PROGRAMMING (3-0-2: 4) Language Processors Introduction, Language Processing Activity, Fundamental of Language Processing, Fundamental of Language Specification, Language Processor Development tool. Compilers Aspects of Compilation, various phases of a compiler ,Memory Allocation, Compilation of Expressions, Compilation of Control Structures, Code Optimization. Assemblers Elements of Assembly Language Programming, Assembly Scheme, Pass Structure of Assembler, Design of Assembler, Data structure, Format of Database, Algorithm, Look for modularity, Table processing: Searching and sorting, A Single Pass Assembler for IBM PC. Linker and Loader Reallocation and Linking Concept, Design of Linker, Self Reallocation Programs, Linking of Overlays, Loader, Absolute Loader, Reallocating Loader, Direct Linking Loader, Design of Loader. Macro Language and Macro Processor Macro Instructions, Features of Macro facility, Macro Instruction arguments, Conditional macro Expression, Macro calls within micros, Macro Instructions defining Macros, Implementation of Two pass Algorithm. Text Editor and debugging system Introduction, Editing features, Type of Editor and user interface, Structure of editor, Editor design and evaluation, Editors function in computing environments, Error rates, Interactive debugging system, Debugging Functions and Capabilities, Type of bugs, Debugging techniques, Debugging Tool, Command line Debugger, Purpose analysis of tool, Type of analysis tool, Memory leaks. Suggested list of Experiments:
01) 02) 03) 04) 05)
Exercises on code optimization (e.g. loop optimization). Scanning assignment with Lex using C, C++. Implementation of macro preprocessor. Exercise on creating a symbol table from given program. Implementation of editor.
Text Books
1. John J. Donovan : “System Programming”, McGraw-Hill Education. 2. D. M. Dhamdhere : “System Software and Operating System”, Tata McGraw-Hill References
1. Leland L. Black : System Software -An Introduction to System Programming, Addison Wesley. 2. A.V. Aho, R. Sethi and J D. Ullman : Compilers-Principles, Techniques and Tools. Pearson Education