Course Details for A.Y. 2012/2013
Name:
Linguaggi di Programmazione e Compilatori / Programming Languages and Compilers
Basic information
Degree(s):
Laurea in Informatica 3° anno curriculum Generale Obbligatorio
Language:
Italian
Course Objectives
The course is an introduction in compiler design and presents the main principles and techniques used during the compilation process. The aim is to make the students capable to solve typical problems in designing a language translator and to develop small software projects regarding the construction of parts of compiler through tools like Lex and Yacc.
Course Content
- Formal language basic notions. Introduction to compiling: the analysis-synthesis model, the phases of a compiler, interpreters
- Lexical analysis: tokens-patterns-lexemes, input buffering, Thompson’s algorithm.
- LEX: software architecture and syntax
- Syntax analysis: parsing top-down, parsing bottom-up. Nonrecursive predictive parsing
- LR parsers: methods SLR, LALR, canonical LR
- LR grammars and ambiguous grammars.
- YACC: software architecture and syntax
- Syntax-directed translation. Syntax-directed definitions: synthesized and inherited attributes, S-attributed definitions and L-attributed definitions
- Translation schemes. Semantic analysis and type checking
- Intermediate code generation. Three-address code: syntax and examples of generation
Prerequisites and Learning Activities
It requires the knowledge of the basic concepts of the formal language theory and programming.
Assessment Methods and Criteria
written examination (midterm + final) on the subjects treated in the course
Textbooks
- A.V. Aho, R. Sethi, J.D. Ullmann, Compilers, principles, techniques and tools , Addison-Wesley, Reading, Mass.
Course page updates
This course page is available (with possible updates) also for the following academic years:
To read the current information on this course, if it is still available, go to the university course catalogue .
Course information last updated on: 01 ottobre 2012, 13:02