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

Foundations of Programming Languages

Code: CC4013     Acronym: CC4013     Level: 400

Keywords
Classification Keyword
OFICIAL Computer Science

Instance: 2016/2017 - 1S

Active? Yes
Web Page: http://www.dcc.fc.up.pt/~sandra/Home/FLP1617.html
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 12 Study plan since 2014/2015 1 - 6 42 162
MI:ERS 2 Plano Oficial desde ano letivo 2014 4 - 6 42 162

Teaching language

Portuguese

Objectives

Study of syntactic an semantic formal models of programming language, in order to provide a deep understanding of  the mechanisms behind programming language definition, design, and implementation. 

Learning outcomes and competences

The students will acquire knowledge about syntactic an semantic formal models of programming language. This course should develop the techniques and mechanisms behind programming language definition, design, and implementation. The students should be able to reason about the meaning of programs in a formal sense. 

Working method

Presencial

Program

Induction. 
Lambda-calculus: sintax, reductions and encodings. 
Type systems: the simple type system; parametric polymorphism; subtyping.
Operational semantics of programming languages. 
Domain theory: Complete partial orders (CPOs). Continuous functions. The fix-point theorem. 
Denotational semantics. Relation between denotational and operational semantics. 
Semantics of functional programming languages. Semantics of the lambda-calculus.
Semantics for  languages based on concurrency.   Nondeterminism and parallelism. Milner's CCS (Calculus of Comunication Systems). 

Mandatory literature

Nielson and Nielson; Semantics with Applications: an appetizer, 2007
Chris Hankin; An Introduction to Lambda Calculus for Computer Scientis
Hindley John Roger; Basic simple type theory. ISBN: 0-521-46518-4

Complementary Bibliography

G. Winskel; The Formal Semantics of Programming languages, 1993
H. Barendregt; The Lambda Calculus: its syntax and semantics, 1985
Mitchell John C.; Foundations for programming languages. ISBN: 978-0-262-13321-0
Fernández Maribel; Programming languages and operational semantics. ISBN: 0-9543006-3-7

Teaching methods and learning activities

Lectures with exposition of the elements in the syllabus.

Evaluation Type

Distributed evaluation with final exam

Assessment Components

designation Weight (%)
Exame 50,00
Teste 50,00
Total: 100,00

Calculation formula of final grade

Mid semester test (50% of the final mark).
Final exam (50% of the final mark).
If MT is the mark obtained in the mid semester test and FE the mark
obtained in the final exam, then the final mark is given by:
F = MT*(0.5) + FE*(0.5)  
MT,FE >= 3 and F >= 9.5
To get approval in the distributed evaluation, students must obtain a minimum of 3 points (in a total of 10) in each test and a minimum of 9.5 as final mark.
The students not obtaining approval, can take a resit exam, with a weight of 100% of the final mark. 

Additionally there could be lab projects proposed in each module, with the weight of these projects in the final mark to be determined by the teacher.

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