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: 2024/2025 - 2S Ícone do Moodle

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 13 Study plan since 2014/2015 1 - 6 42 162

Teaching Staff - Responsibilities

Teacher Responsibility
Luís Miguel Barros Lopes
António Mário da Silva Marcos Florido

Teaching - Hours

Theoretical and practical : 3,23
Type Teacher Classes Hour
Theoretical and practical Totals 1 3,231
António Mário da Silva Marcos Florido 1,615
Luís Miguel Barros Lopes 1,615
Mais informaçõesLast updated on 2024-08-26.

Fields changed: Objectives, Resultados de aprendizagem e competências, Componentes de Avaliação e Ocupação, Programa, Pre_requisitos

Teaching language

Suitable for English-speaking students

Objectives

Introduction to the design principles and implementation techniques of functional and imperative languages.

Learning outcomes and competences

Students should adquire the following competencies: (a) understand the principles used for implementating lazy functional language (such as Haskell) on convencional architectures, the technological problems and available solutions; (b) know how to design and implement a runtime system for an imperative programming language (or components like a garbage collector or an interpreter).

Working method

Presencial

Pre-requirements (prior knowledge) and co-requirements (common knowledge)

Knowledge in functional and imperative programming languages (e.g. Haskell and C, Java); knowledge of low-level programming language (e.g. C),

Program

Module on functional languages

Definition of a minimal functional languages based on 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 reduction strategy using graph reduction. The architecure of the Glasgow Haskell Compiler. Translation in Core language of some Haskell language features. Translation of type classes using dictonaries. Code optimization by Core-to-Core program transformation. The STG abstract machine. Operational semantics of the STG.

Module on imperative languages

Introduction to runtime memory management. Reference Counting. Introduction to Garbage Collection. Algorithms for garbage collection - Mark and Sweep, Mark and Compact, Copy Collection, Generational Garbage Collection - and their time and space complexity. Java case-study.

Mandatory literature

S.L. Peyton Jones; The implementation of functional programming languages. ISBN: 0-13-453325-9
S.L. Peyton Jones; Implementing functional languages. ISBN: 0-13-721952-0
Richard Jones; Garbage collection. ISBN: 978-0-471-94148-4
Benjamin J. Evans, James Gough, Chris Newland; Optimizing Java, O'Reilly Media, 2018. ISBN: ‎1492025798

Teaching methods and learning activities

Lectures presenting concepts aided with illustrative examples of principles of language design and implementation.

Evaluation Type

Distributed evaluation without final exam

Assessment Components

designation Weight (%)
Teste 40,00
Trabalho prático ou de projeto 60,00
Total: 100,00

Amount of time allocated to each course unit

designation Time (hours)
Estudo autónomo 60,00
Frequência das aulas 42,00
Elaboração de projeto 60,00
Total: 162,00

Eligibility for exams

N/A

Calculation formula of final grade

Students are assessed by two practical assignments (graded for 6 points each out of 20) and two written tests  (graded for 4 points each out of 20). The minimal grade on the written tests for aproval is 40%.

The rules above apply equally for classification improvment and special assessments.

Special assessment (TE, DA, ...)

The same rules for calculating the final grade apply.

Classification improvement

The same rules for calculating the final grade apply.

Observations

The second sitting exam follows the same classification rules as the two sittings. The classification of midterm projects cannot be improved on the second sitting.
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:13:23 | Acceptable Use Policy | Data Protection Policy | Complaint Portal