Skip to main content
You are browsing the curriculum of an upcoming academic year (2024–2025).
Do you want to change to the ongoing academic year?
Course unit, curriculum year 2024–2025
COMP.CS.400

Principles of Programming Languages, 5 cr

Tampere University
Teaching periods
Active in period 3 (1.1.2025–2.3.2025)
Active in period 4 (3.3.2025–31.5.2025)
Course code
COMP.CS.400
Language of instruction
English
Academic years
2024–2025, 2025–2026, 2026–2027
Level of study
Intermediate studies
Grading scale
General scale, 0-5
Persons responsible
Responsible teacher:
Matti Rintala
Responsible 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

Participation in teaching

07.01.2025 27.04.2025
Active in period 3 (1.1.2025–2.3.2025)
Active in period 4 (3.3.2025–31.5.2025)