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 • Understand the contribution of compilers to the reliability of software systems;
• Understand the different aspects of programming languages through their compilation;
• Understand the mechanisms underlying compilation: the translation from one language to another, its optimization and the functionality of the different phases;
• Understand the relationship among high-level language, intermediate representation, analysis and optimization;
• Understand the process of generating code for modern computer architectures, including virtual machines;
• Implement a compiler for a realistic programming language or extend an existing one;
• Select modern tools to implement parts of compilers and interpret their functionality; and
• Communicate the results obtained clearly and precisely, using a technical report.
Syllabus A. RISC-V Assembly programming
B. Abstract syntax, semantics and interpreters
C. Lexical and syntactic analysis
D. Typing
E. Evaluation strategies and parameter passing
F. Compilers for functional and object-oriented languages
G. Compiler optimization
H. Memory allocation
Main Bibliography Alfred V. Aho, Monica S. Lam, Ravi Sethi et Jeffrey D. Ullman. Modern Compilers: Principles, Techniques, and Tools.
Benjamin C. Pierce. Types and Programming Languages.
Randal E. Bryant et David R. O'Hallaron. Computer Systems: A Programmer's Perspective.
Teaching Methodologies and Assessment Criteria For students to acquire the necessary skills, the following are planned:
• 2h/week of lectures (TE) for oral presentation of theoretical concepts, methods and algorithms, also using the white-board, discussion of ideas with students and presentation of slides;
• 2h/week of practical-laboratory classes (PL), in which the student will apply and test the concepts, methods and algorithms presented in the theoretical classes, through laboratory guides that the students perform on the computers;
Language Portuguese. Tutorial support is available in English.
Last updated on: 2024-09-23

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