The course is divided into three separate modules, each covering different aspects on types, semantics, and programming language theory:
1. Operational semantics and the lambda calculus
- Small-step and big-step operational semantics
- Untyped lambda calculus
- Fundamental typed functional programming
2. Typed lambda calculus with extensions
- Type rules
- Type soundness proofs
- Semantics for let bindings, pairs, tuples, records, sums, and lists
- References and exceptions
3. Subtyping and Polymorphism
- Subtype polymorphism
- Parametric polymorphism
- Ad-hoc polymorphism
- Structural and nominal type systems
- Gradual typing
FIK3620 Types, Semantics, and Programming Languages 7.5 credits
Choose semester and course offering
Choose semester and course offering to see current information and more about the course, such as course syllabus, study period, and application information.
Application
For course offering
Spring 2024 Start 18 Mar 2024 programme students
Application code
61046
Content and learning outcomes
Course contents
Intended learning outcomes
After the course, the student will be able to
- Construct type soundness proofs
- Analyze type rules
- Analyze small-step and big-step operational semantics
- Implement an interpreter and a type checker for a typed functional language
- Apply untyped and simply typed lambda calculus with extensions
Literature and preparations
Specific prerequisites
Recommended prerequisites
Good knowledge in programming. Good basic knowledge in discrete mathematics and logic.
Knowledge in functional programming and compilers is beneficial, but is not a prerequisite.
Equipment
Literature
Examination and completion
If the course is discontinued, students may request to be examined during the following two academic years.
Grading scale
Examination
- EXA1 - Examination, 7.5 credits, grading scale: P, F
Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.
The examiner may apply another examination format when re-examining individual students.
See "Requirements for final grade" below.
Other requirements for final grade
The student receives grade P if the following is fulfilled:
1. Active participation in seminars
2. Approved oral presentations at the seminars
3. Approved solutions to theoretical exercises
4. Approved submission and presentation of a software implementation
If the student cannot participate in a seminar, the student can do complementary work at another occasion.
Opportunity to complete the requirements via supplementary examination
Opportunity to raise an approved grade via renewed examination
Examiner
Ethical approach
- All members of a group are responsible for the group's work.
- In any assessment, every student shall honestly disclose any help received and sources used.
- In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.