Difference between revisions of "Spring 2021: Programming in Java (PSCS)"

From MKWiki
Jump to navigation Jump to search
Line 10: Line 10:
 
{| class="wikitable" style="text-align:left; width: 100%";  
 
{| class="wikitable" style="text-align:left; width: 100%";  
 
|-
 
|-
!Date
+
!Lecture
 
!Topic
 
!Topic
 
!Lecture Slides [ppt/pdf]
 
!Lecture Slides [ppt/pdf]
 
!Readings
 
!Readings
 
|-
 
|-
| style="width: 8%" | Wed 19/08
+
| style="width: 8%" | Lecture 01 (Jan 05)
 
| style="width: 58% | '''''Introduction to System Software''''', System Software and Machine Architecture, The Simplified Instructional Computer(SIC).
 
| style="width: 58% | '''''Introduction to System Software''''', System Software and Machine Architecture, The Simplified Instructional Computer(SIC).
 
| style="width: 17%" | [http://mkbhandari.com/mkwiki/data/fall2020/1IntroSS.pdf '''0.pdf''']
 
| style="width: 17%" | [http://mkbhandari.com/mkwiki/data/fall2020/1IntroSS.pdf '''0.pdf''']
 
| Chapter 1 (Additional R1)
 
| 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.
 
| [http://mkbhandari.com/mkwiki/data/fall2020/2Assembler.pdf '''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.
 
| [http://mkbhandari.com/mkwiki/data/fall2020/3LinkerLoader.pdf '''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'''.
 
| [http://mkbhandari.com/mkwiki/data/fall2020/4IntroCompilers.pdf '''Intro2Compilers.pdf'''] 
 
[http://mkbhandari.com/mkwiki/data/fall2020/TranslationPhase.png '''Translation Phase.jpg''']
 
| Chapter 1 (R1)
 
|-
 
| Mon 14/09, Sat 19/09, Mon 21/09, Wed 23/09
 
| '''''Lexical Analysis''''': <br>
 
(1) '''Role of Lexical Analyzer''' - Lexical Analysis vs. Parsing. Tokens, Patterns, and Lexemes. Attributes for Tokens. Lexical Errror. <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)
 
|-
 
| # Fri 25/09
 
| colspan="3" | '''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''''':<br>
 
(1) Role of Syntax Analyzer. <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>
 
(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.
 
| [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)
 
|-
 
| # Fri 23/10
 
| 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)
 
|}
 
  
 
== Assignments and Tests==
 
== Assignments and Tests==

Revision as of 21:34, 14 January 2021

Logistics

  • Class Timings: Tuesdays 1:00 pm - 3:00 pm (5th and 6th slot)
  • Classroom: Online
  • Lab Timings: Mondays (8:45 am - 12:45 pm (1st to 4thslot)

Course Overview

Lectures

Lecture Topic Lecture Slides [ppt/pdf] Readings
Lecture 01 (Jan 05) Introduction to System Software, System Software and Machine Architecture, The Simplified Instructional Computer(SIC). 0.pdf Chapter 1 (Additional 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.