Implementation of Programming Languages
Keywords |
Classification |
Keyword |
OFICIAL |
Computer Science |
Instance: 2018/2019 - 2S
Cycles of Study/Courses
Teaching language
Suitable for English-speaking students
Objectives
Introduction to the design principles and implementation advanced techniques of programming languages.
Learning outcomes and competences
The students should acquire the following competences: understand the principles used to implement functional languages (such as ML or Haskell) logic languages (Prolog) and object-oriented programming languages on standard computer architectures, the technological problems associated with their design and the existing solutions.
Working method
Presencial
Program
Implementation of Functional languages:
Definition of a toy functional language by extension of the lambda-calculus. Strict vs non-strict semantics. Call-by-value and call-by-name reduction strategies. Implementation of higher-order functions using closures. The SECD abstract machine.
Call-by-need evaluation and graph reduction. The STG abstract machine.
Implementation of Logic Programming Languages:
SLD resolution and Prolog. The Warren's Abstract Machine (WAM): compilation, unification, execution stacks, environments, choice-points, backtracking and indexing.
Object-oriented programming: classes,
Single inheritance of data fields, Multiple inheritance, Testing class membership, Private fields and methods, Classless languages.
Mandatory literature
Appel Andrew W. 1960-;
Modern compiler implementation in ML. ISBN: 978-0-521-60764-3 pbk
S.L. Peyton Jones;
The implementation of functional programming languages. ISBN: 0-13-453325-9
Ait-Kaci Hassan;
Warren.s abstract machine. ISBN: 0-262-01123-9
Teaching methods and learning activities
Lectures with practical assignments.
Evaluation Type
Distributed evaluation with final exam
Assessment Components
designation |
Weight (%) |
Exame |
60,00 |
Trabalho laboratorial |
40,00 |
Total: |
100,00 |
Amount of time allocated to each course unit
designation |
Time (hours) |
Elaboração de projeto |
1,00 |
Estudo autónomo |
3,00 |
Frequência das aulas |
3,00 |
Trabalho laboratorial |
1,00 |
Total: |
8,00 |
Eligibility for exams
Exam + coursework.
Calculation formula of final grade
Students are assessed by their performance in the following components: (a) practical assignments
worth 8 points out of 20; (b) a written examination in the final of the semester worth 12 points out of 20.