Learning objectives
The students will be able to understand and apply different modern type systems and will be able to adapt them to concrete specifications.
This includes an ability to:
- explain the basic concepts introduced (types, subtyping, polymorphim, effects, type checking, type inference)
- explain concrete type systems and their applications (dimension types, communication types, security types, region types)
- adapt type systems to a given application
- argue for the appropriateness of the resulting type system (soundness)
- implement algorithms for type inference (based on algorithms like Milner's W and I, or constraint-based algorithms) to a concrete type system
- realise these results as part of a group effort while maintaining individual responsibility
- write a comprehensive report clearly exlplaining the results and methods
- give a talk that clearly presents the main results and methods