Professional Documents
Culture Documents
Proceedings of The 39th Academic Council (17.12.2015)
Proceedings of The 39th Academic Council (17.12.2015)
LTP JC
3 0 0 4 4
Objectives
Provides required theoretical foundation for a computational model and compiler design
Discuss Turing machines as a abstract computational model
Compiler algorithms focus more on low level system aspects
Expected Outcome
On successful completion of the course, the student should be able to:
1. Design computational models for formal languages
2. Design scanners and parsers using top-down as well as bottom-up paradigms
3. Design symbol tables and use them for type checking and other semantic checks
4. Implement a language translator
5. Use tools such as lex, YACC to automate parts of implementation process.
The following is a sample project that shall be given to students that shall be
implemented using any programming language:
Define a small language that is similar to Standford's COOL (Class room Object
Oriented language). Each project will ultimately result in a working compiler
phase which can interface with other phases. Student will have an option of
doing the projects in any programming languages they may also integrate some
of the tools already available.
Develop a lexical analyzer - Tools such as lex, flex for C++; jlex for Java
may be used
Input - Set of tokens
Output - recognizing tokens in the specified language as valid and invalid
Reference Books
1. Introduction to Languages and the Theory of Computation, John Martin, McGraw-Hill Higher
Education,2010
2. Modern Compiler Implementation in Java, 2nd ed., Andrew W. Appel Cambrdige University Press,
2012.
Knowledge Areas that contain topics and learning outcomes covered in the course
This course is a
Core subject
Suitable from 4th semester onwards.
Knowledge of any one programming language is essential.
This Course is designed with 150 minutes of in-classroom sessions per week, 30 minutes of
video/reading instructional material per week, as well as 200 minutes of non-contact time
spent on implementing course related project. Generally this course should have the
combination of lectures, in-class discussion, guest-lectures, mandatory off-class reading material,
quizzes.
15 Weeks
schedule)