Foundations of Programming Languages
Keywords |
Classification |
Keyword |
OFICIAL |
Computer Science |
Instance: 2017/2018 - 1S
Cycles of Study/Courses
Teaching language
Portuguese
Objectives
Study of 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 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
Operational semantics of programming languages.
Induction.
Lambda-calculus: sintax, reductions and encodings.
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.
Type systems: the simple type system; parametric polymorphism.
Semantics for languages based on concurrency. Nondeterminism and parallelism.
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 |
60,00 |
Trabalho escrito |
20,00 |
Trabalho prático ou de projeto |
20,00 |
Total: |
100,00 |
Calculation formula of final grade
Courseworks (2) (40% of the final mark).
Final exam (60% of the final mark).
If TE is the mark obtained in the mid semester coursework, TL in the final coursework and FE the mark
obtained in the final exam, then the final mark is given by:
F = TE*(0.2) + TL*(0.2) + FE*0,6