This site uses only proprietary and third party technical cookies. By continuing to browse the site you are agreeing to our use of cookies. I agree I want to find out more
Browse the Department site:
Browse the Teaching site:

Programme of Course "Laboratorio di Compilatori"



Type of course unit:

Bachelor Degree in Computer Science curriculum General: Elective

Level of course unit:

Undergraduate Degrees


2nd semester

Number of credits:

Bachelor Degree in Computer Science: 3 (workload 75 hours)


Sergio Orefice (SergiodotOreficeatunivaqdotit)

1. Course Objectives

The course presents the tools for the automatic generation of the lexical and syntactic analysis parts of the compiling process

2. Course Contents and learning outcomes (Dublin Descriptors)

Topics of the course include:

  • 1) The LEX compiler: structure of the LEX programs, operators and syntax, examples of LEX specifications, resolving conflicts.
  • 2) The YACC compiler: structure of the YACC programs, semantic actions and syntax, input-output translation and examples of YACC specifications, using YACC with ambiguous grammars
  • 3) Automatic parser generation of non linear languages: two-dimensional symbolic languages, positional grammars and spatial relations, using YACC with positional grammars

On successful completion of this course, the student should

  • acquire knowledge of the structure and the role of compilers; acquire knowledge and understanding of the principles and techniques used in the lexical and parsing phases of the compilation process

  • be able to apply the methodologies learnt by the course to the development of small software projects regarding the construction of parts of compiler using Lex and Yacc

  • demonstrate capacity to extend concepts and formalisms of classic compiling theory to the context of non linear languages

  • demonstrate capacity for reading and understanding other texts on related topics

3. Course Prerequisites

Knowledge of the basic concepts of the compiling process

4. Teaching methods and language

Lectures and exercises


Reference textbooks

  • point 3) papers provided by the lecturer - points 1) and 2) A.V. Aho, R. Sethi, J.D. Ullmann, Compilers, principles, techniques and tools. Addison-Wesley .

5. Assessment Methods

Formative assessment: the formative assessment is performed via interaction between teacher and students during lectures. The students are encouraged to actively participate to the lectures by making questions and discussing the theoretical concepts presented and the solutions adopted in the developed examples. Summative assessment: written test on the subjects treated in the course. The written test (lasting 2 hours) consists of a set of questions for the verification of theoretical/formal competences and for the verification of skills in understanding and solving significant exercises. Criteria of evaluation will be: the level of knowledge of the principles and techniques presented in the course, as well as the ability to apply them; the clarity and completeness of explanations.

Course information last updated on: 21 ottobre 2016, 10:44