Meaning of the notion of type in programming languages, classification of programming languages regarding type systems, simple theoretical type models, types in imperative languages (especially Ada), theoretical models of polymorphic type systems and type inference, programming languages with polymorphic type systems, subtyping, genericity, types as partial specifications of object behariour, use of polymorphic type systems in object-oriented programming.
Educational Concept:
"Typesystems" is a lecture in the classic style based on a weekly talk. First we give an overview and introduce some terminology. Then, we (1) discuss practical experiences in subtopics, (2) introduce formal models and (3) show typical applications thereof, leading to new practical experiences. We repeat this cycle several times, thereby increasing the complexity with each iteration. In the last part of the lecture we discuss current trends and approaches to address current problems.