Semantics of Programming Languages
Keywords |
Classification |
Keyword |
OFICIAL |
Computer Science |
Instance: 2024/2025 - 1S
Cycles of Study/Courses
Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
L:CC |
26 |
study plan from 2021/22 |
3 |
- |
6 |
48 |
162 |
Teaching Staff - Responsibilities
Teaching language
Portuguese
Objectives
Introduction to different programming paradigms and their different concept and features. We will study the main components of programming languages and some of the tools that are used to describe in a precise way the behaviour of their main constructs.
Learning outcomes and competences
By the end of the semester the student should be able to describe and formalize the essential concepts of each paradigms, as well as understand the tools and methods necessary for develop new programming languages.
Working method
Presencial
Pre-requirements (prior knowledge) and co-requirements (common knowledge)
Computational Logic, Models of computation, Imperative , Logic, and Functional programming languages
Program
Introduction to the different programming paradigms. Syntax, semantics and implementation of languages. Transition systems
Imperative programming:
General concepts: variables, assignment, control commands, blocks
Operational semantics: abstract machines, estrutural operational semantics
Functional programming:
General concepts: function definition, recursion
Type systems
Operational semantics
Logic programming:
General concepts: terms, predicates, clauses
Herbrand Universe; Operational and denotational semantics
Mandatory literature
Hanne Riis Nielson;
Semantics with applications. ISBN: 978-1-84628-691-9
Maribel Fernández;
Programming languages and operational semantics. ISBN: 0-9543006-3-7
Complementary Bibliography
Thérèse Hardin, Mathieu Jaume, François Pessaux, Véronique Viguié Donzeau-Gouge; Concepts and Semantics of Programming Languages: a semantical approach with Python and Ocaml , Wiley, 2021. ISBN: 9781786305305
Flemming Nielson;
Formal methods. ISBN: 978-3-030-05156-3 (Ebook)
Robert W. Sebesta; Concepts of Programming Languages, Pearson, 2018. ISBN: 9780135102268
Kent D. Lee; Foundations of Programming Languages, Springer, 2017. ISBN: 978-3-319-70789-1
Richard Bird;
Introduction to functional programming using Haskell. ISBN: 978-0-13-484346-9 pbk
Teaching methods and learning activities
Lectures and lab classes for problem solving and case studies. Distributed evaluation without final examination . Two tests with weight 50%.
Assignments are proposed about all topics of the syllabus. Some practical projects can be also proposed during the course, Midterm and final examinations allow the assessment that the main learning outcomes are attained.
Software
Linguagem Prolog
Linguagem Haskell
Programming Languages Zoo (http://plzoo.andrej.com)
Evaluation Type
Distributed evaluation without final exam
Assessment Components
designation |
Weight (%) |
Exame |
50,00 |
Teste |
50,00 |
Total: |
100,00 |
Amount of time allocated to each course unit
designation |
Time (hours) |
Estudo autónomo |
114,00 |
Frequência das aulas |
48,00 |
Total: |
162,00 |
Eligibility for exams
Presence at 3/4 of the pratical classes
Calculation formula of final grade
Students are required a minumum of 6 (out of 20) in each test.
The date for the first test is in the middle of the first semester and the second is the one set for the regular exam.The final grade (MT - midterm test, FE - final exam)
F = MT*(0.5) + FE*(0.5)
MT,FE >= 6 e F >= 9.5
Examinations or Special Assignments
Practical assignment up to 3/20.
Classification improvement
Students can take the resit exam to raise their grade.