Code: | CC4023 | Acronym: | CC4023 | Level: | 400 |
Keywords | |
---|---|
Classification | Keyword |
OFICIAL | Computer Science |
Active? | Yes |
Web Page: | http://www.dcc.fc.up.pt/~ricroc/aulas/1718/il |
Responsible unit: | Department of Computer Science |
Course/CS Responsible: | Master in Computer Science |
Acronym | No. of Students | Study Plan | Curricular Years | Credits UCN | Credits ECTS | Contact hours | Total Time |
---|---|---|---|---|---|---|---|
M:CC | 5 | Study plan since 2014/2015 | 1 | - | 6 | 42 | 162 |
MI:ERS | 0 | Plano Oficial desde ano letivo 2014 | 4 | - | 6 | 42 | 162 |
Introduction to the design principles and implementation techniques of declarative programming languages.
The students should acquire the following competences: understand the principles used to implement functional languages (such as ML or Haskell) and logic languages (Prolog) on standard computer architectures, the technological problems associated with their design and the existing solutions.
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. Using Haskell as a meta-language for specifying interpreters and compilers for a minimal functional language.
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. Tabling: basic execution model, table space, suspending/resuming the computation, compiling tabled predicates.
Lectures with practical assignments.
designation | Weight (%) |
---|---|
Exame | 60,00 |
Trabalho laboratorial | 40,00 |
Total: | 100,00 |
Students are assessed by their performance in the following components: (a) two practical assignments
worth 4 points each out of 20; (b) a written examination in the final of the semester worth 12 points out of 20.