Difference between revisions of "Fall 2021: System Programming"

From MKWiki
Jump to navigation Jump to search
 
(22 intermediate revisions by the same user not shown)
Line 16: Line 16:
 
|-
 
|-
 
| style="width: 10%" | Unit 01-Part 1 (22/07, 29/07, 04/08, 05/08, 11/08)
 
| style="width: 10%" | Unit 01-Part 1 (22/07, 29/07, 04/08, 05/08, 11/08)
| style="width: 65%" |  <div style="text-align:justify"> '''''Introduction to System Software''''': System Software and Machine Architecture. '''''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.</div>
+
| style="width: 60%" |  <div style="text-align:justify"> '''''Introduction to System Software''''': System Software and Machine Architecture. '''''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.</div>
| style="width: 10%" | [http://mkbhandari.com/mkwiki/data/fall2021/SP/1Assembler.pdf '''1.pdf''']
+
| style="width: 15%" | [http://mkbhandari.com/mkwiki/data/fall2021/SP/1Assembler.pdf '''1.pdf''']
 
| style="width: 15%" |Chapter 3 (R1)
 
| style="width: 15%" |Chapter 3 (R1)
 
|-
 
|-
 
| style="width: 10%" | Unit 01-Part 2 (12/08, 19/08, 25/08, 02/09)
 
| style="width: 10%" | Unit 01-Part 2 (12/08, 19/08, 25/08, 02/09)
| style="width: 65%" |  <div style="text-align:justify">'''Linkers and Loaders''':Introduction to '''Linking''', Static vs. Dynamic Linking, Combining Object Modules, '''Pass I of Linking, Pass II of Linking'''. LIbrary Linking. Position Independent Code. Shared Library Linking. '''Loader''': Binary Image, Types of Loaders.</div>
+
| style="width: 60%" |  <div style="text-align:justify">'''Linkers and Loaders''':Introduction to '''Linking''', Static vs. Dynamic Linking, Combining Object Modules, '''Pass I of Linking, Pass II of Linking'''. LIbrary Linking. Position Independent Code. Shared Library Linking. '''Loader''': Binary Image, Types of Loaders.</div>
| style="width: 10%" | [http://mkbhandari.com/mkwiki/data/fall2020/3LinkerLoader.pdf '''2.pdf''']
+
| style="width: 15%" | [http://mkbhandari.com/mkwiki/data/fall2020/3LinkerLoader.pdf '''2.pdf''']
 
| style="width: 15%" |Chapter 4 (R1)
 
| style="width: 15%" |Chapter 4 (R1)
 
|-
 
|-
 
| style="width: 10%" | Unit 02 (08/09)
 
| style="width: 10%" | Unit 02 (08/09)
| style="width: 65%" |  <div style="text-align:justify">'''Introduction to Compilers''':Overview of compilation, Phases of a compiler </div>
+
| style="width: 60%" |  <div style="text-align:justify">'''Introduction to Compilers''':Overview of compilation, Phases of a compiler </div>
| style="width: 10%" | [http://mkbhandari.com/mkwiki/data/fall2020/4IntroCompilers.pdf '''3.pdf''']  [http://mkbhandari.com/mkwiki/data/fall2020/TranslationPhase.png '''Example.jpg''']
+
| style="width: 15%" | [http://mkbhandari.com/mkwiki/data/fall2020/4IntroCompilers.pdf '''3.pdf''']  [http://mkbhandari.com/mkwiki/data/fall2020/TranslationPhase.png '''Example.jpg''']
 
| style="width: 15%" |Chapter 1 (R2)
 
| style="width: 15%" |Chapter 1 (R2)
 
|-
 
|-
 
| style="width: 10%" | Unit 03 (09/09, 15/09, 23/09)
 
| style="width: 10%" | Unit 03 (09/09, 15/09, 23/09)
| style="width: 65%" |  <div style="text-align:justify">'''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''' (self study from reference book). (5) '''Lexical Analyzer Generatror''' - Lex (self study from reference book, course wiki)</div>
+
| style="width: 60%" |  <div style="text-align:justify">'''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''' (self study from reference book). (5) '''Lexical Analyzer Generatror''' - Lex (self study from reference book, course wiki)</div>
| style="width: 10%" | [http://mkbhandari.com/mkwiki/data/fall2020/5LexicalAnalysis.pdf '''4.pdf''']
+
| style="width: 15%" | [http://mkbhandari.com/mkwiki/data/fall2020/5LexicalAnalysis.pdf '''4.pdf''']
 
| style="width: 15%" |Chapter 3 (R2)
 
| style="width: 15%" |Chapter 3 (R2)
 
|-
 
|-
| style="width: 10%" | Unit 04 (29/09, 06/10, 7/10, 20/10,)
+
| style="width: 10%" | Unit 04 (29/09, 06/10, 7/10, 20/10, 21/10, 23/10)
| style="width: 65%" |  <div style="text-align:justify">'''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) First and Follow in Parsing. (5) '''LR Parsing''': Types of LR Parsers - LR(0), SLR(1), CLR(1), LALR(1). (6) '''YACC''' - The Parser Generator.</div>
+
| style="width: 60%" |  <div style="text-align:justify">'''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) First and Follow in Parsing. (5) '''LR Parsing''': Types of LR Parsers - LR(0), SLR(1), CLR(1), LALR(1). (6) '''YACC''' - The Parser Generator.</div>
| style="width: 10%" | [http://mkbhandari.com/mkwiki/data/fall2020/6SyntaxAnalysis(Partial).pdf '''5.pdf'''] <br> [http://mkbhandari.com/mkwiki/data/fall2021/SP/FirstNFollow.pdf '''Frist and Follow.pdf'''] <br> [http://mkbhandari.com/mkwiki/data/fall2020/6HWnotes(1).pdf '''HWnotes1.pdf''']<br>[http://mkbhandari.com/mkwiki/data/fall2020/6HWnotes(2).pdf '''HWnotes2.pdf''']
+
| style="width: 15%" | [http://mkbhandari.com/mkwiki/data/fall2020/6SyntaxAnalysis(Partial).pdf '''5.pdf'''] <br> [http://mkbhandari.com/mkwiki/data/fall2020/6HWnotes(1).pdf '''HWnotes1.pdf''']<br>[http://mkbhandari.com/mkwiki/data/fall2020/6HWnotes(2).pdf '''HWnotes2.pdf'''] <br><br> [http://mkbhandari.com/mkwiki/data/fall2021/SP/FirstNFollow.pdf '''FirstNFollow.pdf'''] '''Scribe:''' Priya Singh
 
| style="width: 15%" |Chapter 4 (R2)
 
| style="width: 15%" |Chapter 4 (R2)
 +
|-
 +
| style="width: 10%" | Unit 05 (26/10, 10/11)
 +
| style="width: 60%" |  <div style="text-align:justify">'''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.</div>
 +
| style="width: 15%" | [http://mkbhandari.com/mkwiki/data/fall2020/7SDT.pdf '''SDT.pdf''']<br>
 +
| style="width: 15%" |Chapter 5 (R2)
 +
|-
 +
| style="width: 10%" | Unit 05 (11/11)
 +
| style="width: 60%" |  <div style="text-align:justify">Intermediate-Code Generation. Variants of Syntax Trees: Directed Acyclic Graphs('''DAGs''') for Expressions. '''Three Address Code''': (1) Quadruple, (2) Triple, (3) Indirect Triple, (4) Three Address Instruction forms, (5) Some examples..</div>
 +
| style="width: 15%" | [http://mkbhandari.com/mkwiki/data/fall2021/SP/DAG.pdf '''DAG.pdf''']<br> [http://mkbhandari.com/mkwiki/data/fall2020/8TAC.pdf '''TAC.pdf''']
 +
| style="width: 15%" |Chapter 6 (R2)
 +
|-
 +
| style="width: 10%" | Unit 05 (Intermediate Code Generation Remaing Part)
 +
| style="width: 60%" |  <div style="text-align:justify">Types and Declarations, Translation of Expressions, Type Checking, Control Flow</div>
 +
| style="width: 15%" | [http://mkbhandari.com/mkwiki/data/fall2020/9ICG_6.3.pdf '''6.3.pdf''' ] '''Scribe:''' Tanya Gupta  <br> [http://mkbhandari.com/mkwiki/data/fall2020/9ICG_6.4and6.5.pdf '''6.4and6.5.pdf''' ] '''Scribe:''' Prakriti, Pratika, Vivek, Namanpreet <br> [http://mkbhandari.com/mkwiki/data/fall2020/9ICG_6.6.pdf '''6.6.pdf'''] '''Scribe:''' Anshika, Bhumi, Chirag, Ashwin
 +
| style="width: 15%" |Chapter 6 (R2)
 +
|-
 +
| Unit 06 (RTE)
 +
| '''''Run-time Environment''''':(1) Strorage Organization, (2) Activation Records, (3) Activation Trees, (4) Sub-division of run-time memory.
 +
| [http://mkbhandari.com/mkwiki/data/fall2020/10RTE.pdf '''RTE.pdf''' ]
 +
| Chapter 7 (R1)
 +
|-
 +
| Unit 07 (CG)
 +
| '''''Code Generation''''':(1) Position of Code Generator, (2) Issues in the design of Code Generator, (3) The Target Lanuage
 +
| [http://mkbhandari.com/mkwiki/data/fall2020/11CodeGeneration.pdf '''CG.pdf''' ]
 +
| Chapter 8 (R1)
 
|}
 
|}
 
public_html/mkwiki/data/fall2021/SP
 
  
 
== Assignments and Tests==
 
== Assignments and Tests==
Line 67: Line 90:
 
* '''Additional R2''': Dhamdhere, D. M. (2015). Systems Programming. Tata McGrawHill.
 
* '''Additional R2''': Dhamdhere, D. M. (2015). Systems Programming. Tata McGrawHill.
  
== Course Running Status (~60%)==
+
== Course Running Status (~100%)==
 
{| class="wikitable" style="text-align:left; "
 
{| class="wikitable" style="text-align:left; "
 
|-
 
|-
Line 95: Line 118:
 
| 23/09/2021
 
| 23/09/2021
 
|-
 
|-
| 4/Ch3(R2)
+
| 4/Ch4(R2)
 
| Syntax Analysis
 
| Syntax Analysis
| Running
+
| Completed
|  
+
| 23/10/2021
 +
|-
 +
| 5/Ch5(R2)
 +
| Syntax Directed Translation
 +
| Completed
 +
| 10/11/2021
 +
|-
 +
| 5/Ch6(R2)
 +
| Directed Acyclic Graph(DAG), Three Address Code(TAC)
 +
| Completed
 +
| 11/11/2021
 +
|-
 +
| 6/Ch7(R2)
 +
| Run Time Environment
 +
| Completed
 +
| 15/11/2021
 +
|-
 +
| 7/Ch8(R2)
 +
| Code Generation
 +
| Completed
 +
| 15/11/2021
 
|}
 
|}

Latest revision as of 00:36, 17 November 2021

Logistics

  • Class Timings: Wednesdays and Thursdays 10:45 am - 12:45 pm (3rd and 4th slot)
  • Classroom: Online
  • Lab Timings: Tuesdays 1:00 pm - 5:00 pm (5th - 8thslot)

Course Overview

Lectures

Lecture Topic Lecture Slides Readings
Unit 01-Part 1 (22/07, 29/07, 04/08, 05/08, 11/08)
Introduction to System Software: System Software and Machine Architecture. 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.
1.pdf Chapter 3 (R1)
Unit 01-Part 2 (12/08, 19/08, 25/08, 02/09)
Linkers and Loaders:Introduction to Linking, Static vs. Dynamic Linking, Combining Object Modules, Pass I of Linking, Pass II of Linking. LIbrary Linking. Position Independent Code. Shared Library Linking. Loader: Binary Image, Types of Loaders.
2.pdf Chapter 4 (R1)
Unit 02 (08/09)
Introduction to Compilers:Overview of compilation, Phases of a compiler
3.pdf Example.jpg Chapter 1 (R2)
Unit 03 (09/09, 15/09, 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 (self study from reference book). (5) Lexical Analyzer Generatror - Lex (self study from reference book, course wiki)
4.pdf Chapter 3 (R2)
Unit 04 (29/09, 06/10, 7/10, 20/10, 21/10, 23/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) First and Follow in Parsing. (5) LR Parsing: Types of LR Parsers - LR(0), SLR(1), CLR(1), LALR(1). (6) YACC - The Parser Generator.
5.pdf
HWnotes1.pdf
HWnotes2.pdf

FirstNFollow.pdf Scribe: Priya Singh
Chapter 4 (R2)
Unit 05 (26/10, 10/11)
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 (R2)
Unit 05 (11/11)
Intermediate-Code Generation. Variants of Syntax Trees: Directed Acyclic Graphs(DAGs) for Expressions. Three Address Code: (1) Quadruple, (2) Triple, (3) Indirect Triple, (4) Three Address Instruction forms, (5) Some examples..
DAG.pdf
TAC.pdf
Chapter 6 (R2)
Unit 05 (Intermediate Code Generation 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 (R2)
Unit 06 (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)
Unit 07 (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

  • Assignment No. 1(a), Explain the different object file formats. [12/08/2021]
  • Assignment No. 1(b), Explain the difference between compiler and interpreter. [ 08/09/2021]
  • Assignment No. 1(c), Question No. 4, DU Previous Year Question Paper (18th Dec 2020). [11/08/2021]
  • Assignment No. 1(d), Question No. 3, DU Previous Year Question Paper (23rd Dec 2020). [25/08/2021]
  • Assignment No. 1(e), Explain the different types of Language Processors with suitable examples/diagrams. [08/09/2021]

Assignment No. 1, Submission Deadline: 25/09/2021


  • Assignment No. 2(a), Question No. 5, DU Previous Year Question Paper (23rd Dec 2020). [06/10/2021]
  • Assignment No. 2(b), Question No. 1, Unit-4(5.pdf, Slide no. 29). [07/10/2021]
  • Assignment No. 2(c), Question No. 2, Unit-4(5.pdf, Slide no. 29). [07/10/2021]
  • Assignment No. 2(d), Question No. 1, Unit-4(5.pdf, Slide no. 36). [07/10/2021]
  • Assignment No. 2(e), Question No. 2, Unit-4(5.pdf, Slide no. 36). [07/10/2021]

Assignment No. 2, Submission Deadline: 31/10/2021


References/Resources

  • R1: Chattopadhyaya, S. (2011). System Software. PHI Learning.
  • R2: Aho, A., Lam, M., Sethi, R., & Ullman, J. D. (2006). Compilers: Principles, Techniques, and Tools. 2nd edition. Addison Wesley.
  • 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.

Course Running Status (~100%)

Unit/Chapter Topic Status Remarks
1/Ch3(R1) Assemblers Completed 11/08/2021
1/Ch4(R1) Linkers and Loaders Completed 25/08/2021
2/Ch1(R2) Introduction to Compilation Completed 08/09/2021
3/Ch3(R2) Lexical Analysis Completed 23/09/2021
4/Ch4(R2) Syntax Analysis Completed 23/10/2021
5/Ch5(R2) Syntax Directed Translation Completed 10/11/2021
5/Ch6(R2) Directed Acyclic Graph(DAG), Three Address Code(TAC) Completed 11/11/2021
6/Ch7(R2) Run Time Environment Completed 15/11/2021
7/Ch8(R2) Code Generation Completed 15/11/2021