Structure of Prorgramming Languages II

RISC-Linz logo

Wolfgang Schreiner <>

315.509, SS 1998 (Start: March 12)
Thu 16'30-18'00, HA 105

Please note that the course takes place in Hagenberg!

Types, Modules, Classes

This course describes the fundamental syntactic and semantic features of modern programming languages and their impact on language design. It presents a rational reconstruction of imperative languages such as Pascal, Ada, and Modula-3 and functional languages such as scheme and ML.

The focus of the course rests upon typed programming languages since types play the central role in structuring a language and serve as the basis of modern constructions like modules and classes.

This course is self-contained; it does not depend on the course given in the last semester


David A. Schmidt
The Structure of Typed Programming Languages, MIT Press, Cambridge, MA, 1994.
Luca Cardelli and Peter Wegner
On Understanding Types, Data Abstraction, and Polymorphism, Computing Surveys, Volume 17, Number 4, pp. 471-522, December 1985.
Martin Abadi
Baby Modula-3 and a Theory of Objects Journal of Functional Programming, 4(2):249-283, April 1994.
Luca Cardelli
Type systems, pages 2208-2236. CRC Press, 1997.


On Understanding Types, Data Abstraction, and Polymorphism (PostScript)
A presentation of the landmark paper by Cardelli and Wegner.
The Programming Language Core (PostScript)
The core of a typed imperative programming language, abstract syntax, typing rules, denotational semantics.
The Abstraction Principle I (PostScript)
Abstractions, typing rules, semantics, soundness, declarations, lazy and eager evaluation.
The Abstraction Principle II (PostScript)
Variable declarations, type structures, declaration abstractions, modules and classes, record introduction principle, summary.
The Parameterization and Correspondence Principles (PostScript)
Parameterized abstractions, expression parameters, eager and lazy parameter evaluation, other parameter forms; semantics of correspondence, lambda abstraction principle.
The Qualification Principle (PostScript)
Command blocks, dynamic scoping, escaping locations, other blocks; object-oriented languages and subtyping.
Records and Lambda Abstractions (PostScript)
Introduction, higher order languages, lazy and eager evaluation semantics, orthogonality, categorical models.

Maintained by: Wolfgang Schreiner
Last Modification: May 14, 1998

[Up] [RISC-Linz] [University] [Search]