Fall 2020: System Programming

From MKWiki
Jump to navigation Jump to search

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

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

Translation Phase.jpg

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.
(2) Specification of Tokens-Symbols, Alphabets, Strings(Terms for Parts of Strings), Languages(Operations on Languages). Regular Expressions (Algebraic Laws), Regular Definitions, Extensions of Regular Expressions.
(3) Recognition of Tokens, Transition Diagrams, Implementation of Transition Diagrams.
(4) Symbol Table (discussed several times).
(5) Lexical Analyzer Generatror - Lex (self study from reference book, covered and discusses from course wiki)

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.
(2) Context Free Grammars(CFGs), Derivations, Parsing(online content).
(3) Bottom-up Parsing - Reductions, Handle and Handle Pruning, Shift-Reduce Parsing, Conflicts during Shift-Reduce Parsing(shift/reduce or reduce/reduce)
(4) LR Parsing: Types of LR Parsers - LR(0), SLR(1), CLR(1), LALR(1). First and Follow in Parsing is also discussed since their concepts are used in Parsers.
(5) YACC - The Parser Generator.

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.
(2) Synthesized attrributes and Inherited attributes.
(3) S-Attributed SDD and L-Attributed SDD.
(4) Parse Tree, Annotated Parse Tree.
(5) Examples of SDD/SDT - A Simple Desk Calculator, Simple Type Declarations. (6) Dependency Graph, Ordering of evaluation of attributes, etc.

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.