Difference between revisions of "Fall 2020: System Programming"
(24 intermediate revisions by the same user not shown) | |||
Line 22: | Line 22: | ||
| Mon 24/08, Wed 26/08, Fri 28/08 | | 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''''': 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. | ||
− | | [http://mkbhandari.com/mkwiki/data/fall2020/2Assembler.pdf ''' | + | | [http://mkbhandari.com/mkwiki/data/fall2020/2Assembler.pdf '''Assemblers.pdf'''] |
| Chapter 3 (R2) | | Chapter 3 (R2) | ||
|- | |- | ||
| Mon 31/08, Wed 02/09, Mon 07/09 | | 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. | | '''''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. | ||
− | | [http://mkbhandari.com/mkwiki/data/fall2020/3LinkerLoader.pdf ''' | + | | [http://mkbhandari.com/mkwiki/data/fall2020/3LinkerLoader.pdf '''LinkerNLoader.pdf'''] |
| Chapter 4 (R2) | | Chapter 4 (R2) | ||
|- | |- | ||
| Wed 09/09, Fri 11/09 | | Wed 09/09, Fri 11/09 | ||
| '''''Introduction to Compilers''''', Language Processors. The Structure of a Compiler, '''Phases of a Compiler'''. | | '''''Introduction to Compilers''''', Language Processors. The Structure of a Compiler, '''Phases of a Compiler'''. | ||
− | | [http://mkbhandari.com/mkwiki/data/fall2020/4IntroCompilers.pdf ''' | + | | [http://mkbhandari.com/mkwiki/data/fall2020/4IntroCompilers.pdf '''Intro2Compilers.pdf'''] |
[http://mkbhandari.com/mkwiki/data/fall2020/TranslationPhase.png '''Translation Phase.jpg'''] | [http://mkbhandari.com/mkwiki/data/fall2020/TranslationPhase.png '''Translation Phase.jpg'''] | ||
| Chapter 1 (R1) | | Chapter 1 (R1) | ||
|- | |- | ||
| Mon 14/09, Sat 19/09, Mon 21/09, Wed 23/09 | | 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 | + | | '''''Lexical Analysis''''': <br> |
− | | [http://mkbhandari.com/mkwiki/data/fall2020/5LexicalAnalysis.pdf ''' | + | (1) '''Role of Lexical Analyzer''' - Lexical Analysis vs. Parsing. Tokens, Patterns, and Lexemes. Attributes for Tokens. Lexical Error. <br> |
+ | (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.<br> | ||
+ | (3) '''Recognition of Tokens''', Transition Diagrams, Implementation of Transition Diagrams. <br> | ||
+ | (4) '''Symbol Table''' (discussed several times).<br> | ||
+ | (5) '''Lexical Analyzer Generatror''' - Lex (self study from reference book, covered and discusses from course wiki) | ||
+ | | [http://mkbhandari.com/mkwiki/data/fall2020/5LexicalAnalysis.pdf '''LA.pdf'''] | ||
| Chapter 3 (R1) | | Chapter 3 (R1) | ||
|- | |- | ||
Line 49: | Line 54: | ||
(2) Context Free Grammars(CFGs), Derivations, Parsing(online content). <br> | (2) Context Free Grammars(CFGs), Derivations, Parsing(online content). <br> | ||
(3) '''Bottom-up Parsing''' - Reductions, Handle and Handle Pruning, '''Shift-Reduce Parsing''', Conflicts during Shift-Reduce Parsing('''shift/reduce''' or '''reduce/reduce''') <br> | (3) '''Bottom-up Parsing''' - Reductions, Handle and Handle Pruning, '''Shift-Reduce Parsing''', Conflicts during Shift-Reduce Parsing('''shift/reduce''' or '''reduce/reduce''') <br> | ||
− | (4) '''LR Parsing''': Types of LR Parsers - '''LR(0), SLR(1), CLR(1), LALR(1)'''. <br> | + | (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. <br> |
(5) '''YACC''' - The Parser Generator. | (5) '''YACC''' - The Parser Generator. | ||
− | | [http://mkbhandari.com/mkwiki/data/fall2020/6SyntaxAnalysis.pdf ''' | + | | [http://mkbhandari.com/mkwiki/data/fall2020/6SyntaxAnalysis(Partial).pdf '''SA.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'''] |
| Chapter 4 (R1) | | Chapter 4 (R1) | ||
|- | |- | ||
| # Fri 23/10 | | # Fri 23/10 | ||
| colspan="3" | '''TEST 2''', Syllabus Test 1 + Lexical Analysis. | | colspan="3" | '''TEST 2''', Syllabus Test 1 + Lexical Analysis. | ||
+ | |- | ||
+ | | SDT | ||
+ | | '''''Syntax Directed Translations''''':<br> | ||
+ | (1) Syntax Directed Definition. <br> | ||
+ | (2) Synthesized attrributes and Inherited attributes. <br> | ||
+ | (3) S-Attributed SDD and L-Attributed SDD. <br> | ||
+ | (4) Parse Tree, Annotated Parse Tree. <br> | ||
+ | (5) Examples of SDD/SDT - A Simple Desk Calculator, Simple Type Declarations. | ||
+ | (6) Dependency Graph, Ordering of evaluation of attributes, etc. | ||
+ | | [http://mkbhandari.com/mkwiki/data/fall2020/7SDT.pdf '''SDT.pdf'''] | ||
+ | | Chapter 5 (R1) | ||
+ | |- | ||
+ | | TAC | ||
+ | | '''''Three Address Code''''': (1) Quadruple, (2) Triple, (3) Indirect Triple, (4) Three Address Instruction forms, (5) Some examples.. | ||
+ | | [http://mkbhandari.com/mkwiki/data/fall2020/8TAC.pdf '''TAC.pdf'''] | ||
+ | | Chapter 6 (R1) | ||
+ | |- | ||
+ | | # Sat 21/11 | ||
+ | | colspan="3" | '''TEST 3''', Syllabus Syntax Analysis. | ||
+ | |- | ||
+ | | ICG (remaing part) | ||
+ | | Types and Declarations, Translation of Expressions, Type Checking, Control Flow | ||
+ | | [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 | ||
+ | | Chapter 6 (R1) | ||
+ | |- | ||
+ | | 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) | ||
+ | |- | ||
+ | | 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) | ||
|} | |} | ||
Line 66: | Line 105: | ||
* Test 1, 25/09/2020. | * Test 1, 25/09/2020. | ||
* Test 2, 23/10/2020. | * Test 2, 23/10/2020. | ||
− | * Test 3 | + | * Test 3, 21/11/2020. |
== Resources == | == Resources == |
Latest revision as of 02:33, 18 September 2021
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.