You are browsing the curriculum of a past academic year (2023–2024).
Do you want to change to the ongoing academic year?
Course unit, curriculum year 2023–2024
COMP.CS.400
Principles of Programming Languages, 5 cr
Tampere University
- Description
- Completion options
Teaching periods
Active in period 1 (1.8.2023–22.10.2023)
Active in period 3 (1.1.2024–3.3.2024)
Active in period 4 (4.3.2024–31.5.2024)
Course code
COMP.CS.400Language of instruction
EnglishAcademic years
2021–2022, 2022–2023, 2023–2024Level of study
Intermediate studiesGrading scale
General scale, 0-5Persons responsible
Responsible teacher:
Matti RintalaResponsible organisation
Faculty of Information Technology and Communication Sciences 100 %
Coordinating organisation
Computing Sciences Studies 100 %
Core content
- Phases of translation: lexical analysis, syntax analysis, semantical analysis, abstract syntax tree, symbol table. Basic operating principles of a compiler/interpreter. Implementing the lexical and syntax analysis of a simple programming language.
- Object models and other implementation choices and implementation principles of the most common programming language features. Value and reference semantics.
- Principles of memory management, e.g., the content and importance of activation records.
- Basic knowledge of different programming paradigms.
Understanding programs written in different paradigms - Type systems. Differences between static and dynamic typing.
Complementary knowledge
- Implementing semantic analysisa and an interpreter for a simple programming language.
- Detailed implementation of some features in a certain programming language.
- Implementation of activation records in a certain computer architecture.
- Writing small programs in different programming paradigms.
- Type inference. How static/dynamic typing affects other aspects of a programming language.
Specialist knowledge
- Compiler optimization techniques and effect of CPU architectures to programming language performance.
- Writing real programs in a certain paradigm other than the most common ones. The basics of monads in Haskell.
- Genericity and type systems. Higher order types and type classes.
Learning outcomes
Compulsory prerequisites
Recommended prerequisites
Further information
Learning material
Equivalences
Studies that include this course
Completion option 1
Completion of all options is required.
Participation in teaching
08.01.2024 – 31.05.2024
Active in period 3 (1.1.2024–3.3.2024)
Active in period 4 (4.3.2024–31.5.2024)
Exam
04.09.2023 – 30.09.2023
Active in period 1 (1.8.2023–22.10.2023)
29.04.2024 – 12.05.2024
Active in period 4 (4.3.2024–31.5.2024)
13.05.2024 – 31.05.2024
Active in period 4 (4.3.2024–31.5.2024)