Section: X
Theory
Schedule: Mondays - 4PM to 6PM, Tuesdays - 2PM to 3PM,
Wednesdays - 5PM to 6PM (Tutorial)
Classroom - NAB 306
Lab
Schedule: Mondays-9AM to 12NOON
Lab - Software Lab I
Class overview
How the programs written in high-level languages are converted to machine language programs, so that a computer can execute it? The objective of the class is to learn above process done by computer programs known as compilers.
Evaluation:
Continuous Assessment: 7 Homeworks (15 Marks)
Midsem: End-September (25 Marks)
Endsem: End-November (60 Marks)
Syllabus:
Idea of the difference between Compiler and other various Translators, Phases of a Compiler and Bootstrapping.
Understand Lexical Analyzer, Transition Diagram of different tokens, Reserved Word Strategy.
Idea of Syntax Analyzer, Ambiguity, Parse Tree, Top Down and Bottom Up Parser.
Concept of Semantic Analyzer, Semantic Actions, Intermediate Code, Virtual Machine. Lexical and Grammatical Errors.
Idea of Code Optimization, Criterion of Optimization, Different Local and Global Optimization Techniques.
Idea of Code Generation, Instruction Costs, Code Generation Algorithm, Run Time Store Management.
Symbol Table Design, Fixed Length and Variable Length Entry, Symbol Table Actions, Different Searches, Hash Table Organization, Different Deletions of Symbols, Linked List and Tree Representation.
Lecture Slides and Notes:
Lecture notes (PDFs) will be shared with the CRs.
Books:
Textbooks:
1. Compilers Principles, Techniques, and Tools, by A. V. Aho, Monica S. Lam, R. Sethi, & J. D. Ullman, 2nd ed., ISBN 978-81317-2101-8, Pearson Ed., 2008
2. Modern Compiler Design, by Dick Grune, Kees van Reeuwijk, Henri E. Bal, Ceriel J. H. Jacobs, Koen Langendoen, 2nd ed,, ISBN 978 1461 446989, Springer (2012).
3. Introduction to Compiling Techniques A first course using ANSI C, Lex and Yacc, by J. P. Bennett, ISBN 0-07-053073-4, TMH
4. Engineering a Compiler, by Keith D. Cooper & Linda Troczon, (2nd ed.), ISBN 978-93-80931-87-6, Morgan Kaufmann, Elsevier, 2012
References:
5. Programming Language Pragmatics, by Michael L. Scott, ISBN 81312-0737-4, Morgan Kaufmann, Elsevier, 2006
6. Advanced Compiler Design and Implementation by, Steven S. Muchnick, ISBN 981-4066-24-9, Morgan Kaufmann, Elsevier, 2000
7. Optimizing Compilers for Modern Architectures, by Randy Allen & Ken Kennedy, ISBN 81-8147-366-3, Morgan Kaufmann, Elsevier, 2002
8. Modern Compiler Implementation in C, by Andrew W. Appel, ISBN 81-7596-071-X, CUP
9. Practice and Principles of Compiler Building with C, by Henk Alblas & Albert Nymeyer, ISBN 81-203-1362-3, PHI
10. flex & bison by, John R levine, ISBN 81-8404-816-5, SPD- O’Reilly
11. http://www.compilerconnection.com- A compiler related home page.
12. Compiler Construction using Flex and Bison by Anthony Aaby, http://cs.wwc.edu/∼aabyan/464/Book.