Go to:
Logótipo
You are in:: Start > CC4023

Implementation of Programming Languages

Code: CC4023     Acronym: CC4023     Level: 400

Keywords
Classification Keyword
OFICIAL Computer Science

Instance: 2018/2019 - 2S

Active? Yes
Responsible unit: Department of Computer Science
Course/CS Responsible: Master in Computer Science

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
M:CC 7 Study plan since 2014/2015 1 - 6 42 162
MI:ERS 4 Plano Oficial desde ano letivo 2014 4 - 6 42 162

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.

Recommend this page Top
Copyright 1996-2024 © Faculdade de Ciências da Universidade do Porto  I Terms and Conditions  I Acessibility  I Index A-Z  I Guest Book
Page created on: 2024-10-07 at 00:14:33 | Acceptable Use Policy | Data Protection Policy | Complaint Portal