Subject: Compiler and Languages Theory

Scientific Area:

Computing

Workload:

80 Hours

Number of ECTS:

7,5 ECTS

Language:

Portuguese

Overall objectives:

1 - The general goal is the presentation and study of methods, techniques and tools of compilers.
2 - The specific objectives are: to work with languages, grammars, sets, expressions and automata.
3 - Make recognition of deterministic languages.
4 - Build a lexical analyser and a parser.
5 - Acquire some theoretical knowledge about semantic analysis and code generation.

Syllabus:

1 - Introduction to the theory of languages.
2 - Properties of regular languages
3 - Context-Free languages
4 - Pushdown automata
5 - Recognition of deterministic languages
6 - Lexical analyzers and parsers
7 - Semantic analysis. Code generation.

Literature/Sources:

Francisco Miguel Dionísio , Folhas de apoio à disciplina de Compiladores ,
Alfred Aho, Ravi Sethi e Jeffrey Ullman , Compilers: Principles, Technics and Tools , Addison-wesley
John E. Hopcroft, Rajeev Motwani e Jeffrey Ullman , Introduction to Automata theory, Languages and Computation (Second Edition) , Addison-wesley
Louden, Kenneth C. , Compiler Construction: Principles and Practice ,
Rui Gustavo Crespo , Processadores de Linguagens, da Concepção à Implementação , IST Press
Vern Paxson , Flex- Fast Lexical Analyzer Generator , Lawrence Berkeley Laboratory
Charles Donnely e Richard Stallman , Bison- The YACC-Compatible Parser Generator ,

Assesssment methods and criteria:

Classification Type: Quantitativa (0-20)

Evaluation Methodology:
Lectures. Problem solving classes. Pratical work with computer. Teamwork Criteria: Two tests (to solve individually), and a project to develop in group. At the end of the project, there is an individual oral exam. There is a final exam to recover any of the tests, but not the project. Each test values 35% and the project 30%.