Skip to main content
Course unit, curriculum year 2024–2025
COMP.CS.400

Principles of Programming Languages, 5 cr

Tampere University
Teaching periods
Active in period 1 (1.8.2024–20.10.2024)
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

17.09.2024 20.10.2024
Active in period 1 (1.8.2024–20.10.2024)
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)