Foundations of Programming Languages
Keywords |
Classification |
Keyword |
OFICIAL |
Computer Science |
Instance: 2016/2017 - 1S
Cycles of Study/Courses
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.