You need to activate javascript for this site.
Menu Conteúdo Rodapé
  1. Home
  2. Courses
  3. Computer Science and Engineering
  4. Programming Languages and Compilers

Programming Languages and Compilers

Code 14460
Year 1
Semester S1
ECTS Credits 6
Workload PL(30H)/T(30H)
Scientific area Informatics
Entry requirements N/A
Learning outcomes The students should be able to conceptually understand and put in practice the following concepts:

Compilers front-end, Lexical Analysis, (Ascendant and Descendent) Syntactical Analysis, Operational Semantics, Denotational Semantics, Type Checking and (polymorphic) Type Systems, Activation Records, Translation to Intermediate Code, Basic Blocks and Traces, Instruction Selection, Liveness analysis, Register allocation, Garbage collection, Object-oriented languages, Functional Programming Languages, Loop Optimizations, Code Optimizations, Static Single-Assignment Form, Dataflow Analysis, Control Flow Analysis, Pointer Analysis and Other Static Program Analysis. Monotone Framework, Unification Framework, Cubic Framework.
Syllabus Aula 1 - Assembly x86-64
Aula 2 - Abstract syntax, formal semantics and interpreters
Aula 3 - Types
Aula 4 - Lexical analysis
Aula 5 - Descendent Syntactical Analysis
Aula 6 - Ascendant Syntactical Analysis
Aula 7 - Compiling imperative languages
Aula 8 - Compiling functional languages
Aula 9 - Compiling object oriented languages
Aula 10 - memory allocation
Aula 11 - code optimization
Aula 12 - Orders, lattices and the monotone framework
Aula 13 - Dataflow analysis
Aula 14 - Path Sensitivity, interprocedural analysis and control flow analysis
Aula 15 - Pointer analysis
Main Bibliography Andrew A. Appel. Modern Compiler Implementation in ML.
A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman, Compilers: Principles, Techniques, and Tools, 2nd edition, Addison Wesley, 2006. ISBN 0-321-48681-1.
Benjamin C. Pierce. Types and Programming Languages.
Flemming Nielson, Hanne R. Nielson, and Chris L. Hankin. Principles of Program Analysis.
Hanne. R. Nielson and Flemming Nielson. Semantics with Applications - an appetizer.
Anders Møller and Michael I. Schwartzbach. Static Program Analysis.
Randal E. Bryant et David R. O’Hallaron. Computer Systems: A Programmer’s Perspective.
Teaching Methodologies and Assessment Criteria This is a course with a clear practical outcome: the students should be able to design programming languages and to implement their compilers.
Therefore the assessment criteria is based on a complete and detailed homework that implies the design and implementation of a compiler from scratch.
Language Portuguese. Tutorial support is available in English.
Last updated on: 2021-02-03

The cookies used in this website do not collect personal information that helps to identify you. By continuing you agree to the cookie policy.