Fall 2020: System Programming
Contents
Logistics
- Class Timings: Mondays(4th and 5th slot), Wednesdays(1st,2nd slot),
- Classroom: Online
- Lab Timings:Wednesdays(3rd slot),Fridays(1st slot) Saturdays(2nd,3rd slot)
Course Overview
- As per the COURSE Guidelines
Lectures
Date | Topic | Lecture Slides [ppt/pdf] | Readings |
---|---|---|---|
Wed 19/08 | Introduction to System Software, System Software and Machine Architecture, The Simplified Instructional Computer(SIC). | 0.pdf | Chapter 1 (Additional R1) |
Mon 24/08, Wed 26/08, Fri 28/08 | Assemblers: Introduction to Assembler. A Simple Manual Assembler. Assembler Design Process: (1) Major Data Structures used (Machine Opcode Table, Pseudo Opcode Table, Symbol Table), (2) Two-pass Assembler, (3) Single-pass Assembler. Load-and-go Assemblers, Object file formats. | Assemblers.pdf | Chapter 3 (R2) |
Mon 31/08, Wed 02/09, Mon 07/09 | Linkers and Loaders:Introduction to Linking, Static vs. Dynamic Linking, Combining Object Modules, Pass I of Linking, Pass II of Linking, Algorithm for Pass II. LIbrary Linking. Position Independent Code. Shared Library Linking. Loader: Binary Image, Types of Loaders. | LinkerNLoader.pdf | Chapter 4 (R2) |
Wed 09/09, Fri 11/09 | Introduction to Compilers, Language Processors. The Structure of a Compiler, Phases of a Compiler. | Intro2Compilers.pdf | Chapter 1 (R1) |
Mon 14/09, Sat 19/09, Mon 21/09, Wed 23/09 | Lexical Analysis: (1) Role of Lexical Analyzer - Lexical Analysis vs. Parsing. Tokens, Patterns, and Lexemes. Attributes for Tokens. Lexical Error. |
LA.pdf | Chapter 3 (R1) |
# Fri 25/09 | TEST 1, Syllabus (1) Introduction to System Softwares, (2) Assemblers, (3)Linker and Loader, (4) Introduction to Compilers | ||
Wed 30/09, Mon 05/10, Fri 09/10, Wed 14/10, Fri 16/10, Mon 19/10, Wed 21/10, Mon 26/10 | Syntax Analysis: (1) Role of Syntax Analyzer. |
SA.pdf HWnotes1.pdf HWnotes2.pdf |
Chapter 4 (R1) |
# Fri 23/10 | TEST 2, Syllabus Test 1 + Lexical Analysis. | ||
SDT | Syntax Directed Translations: (1) Syntax Directed Definition. |
SDT.pdf | Chapter 5 (R1) |
TAC | Three Address Code: (1) Quadruple, (2) Triple, (3) Indirect Triple, (4) Three Address Instruction forms, (5) Some examples.. | TAC.pdf | Chapter 6 (R1) |
# Sat 21/11 | TEST 3, Syllabus Syntax Analysis. | ||
ICG (remaing part) | Types and Declarations, Translation of Expressions, Type Checking, Control Flow | 6.3.pdf Scribe: Tanya Gupta 6.4and6.5.pdf Scribe: Prakriti, Pratika, Vivek, Namanpreet 6.6.pdf Scribe: Anshika, Bhumi, Chirag, Ashwin |
Chapter 6 (R1) |
RTE | Run-time Environment:(1) Strorage Organization, (2) Activation Records, (3) Activation Trees, (4) Sub-division of run-time memory. | RTE.pdf | Chapter 7 (R1) |
CG | Code Generation:(1) Position of Code Generator, (2) Issues in the design of Code Generator, (3) The Target Lanuage | CG.pdf | Chapter 8 (R1) |
Assignments and Tests
Assignments
- Assignment No. 1, Posted on Google Classroom, Submission Deadline: 30/09/2020
- Assignment No. 2, Posted on Google Classroom, Submission Deadline: 02/11/2020
Tests
- Test 1, 25/09/2020.
- Test 2, 23/10/2020.
- Test 3, 21/11/2020.
Resources
- R1: Aho, A., Lam, M., Sethi, R., & Ullman, J. D. (2006). Compilers: Principles, Techniques, and Tools. 2nd edition. Addison Wesley.
- R2: Chattopadhyaya, S. (2011). System Software. P H I Learning.
- Additional R1: Beck, L. & Manjula, D. (1996). System Software: An Introduction to System Programming. 3rd edition. Pearson Education.
- Additional R2: Dhamdhere, D. M. (2015). Systems Programming. Tata McGrawHill.