Modern industrial-strength programming languages such as Java, C#, Scala, F# and Fortress incorporate advanced language features such as higher-order functions (lambda expressions), type inference and concurrency constructs. All of these features are based on theoretical insights that arise program semantics and formalisms such as the lambda calculus and the pi-calculus. This course will give an introduction to these theories, how they are related and how they can be applied in a programming language setting.

Topics include:
• Lambda calculus
• Typed lambda calculus
• Simple process calculi
• The pi-calculus
• Related nominal process calculi (Higher Order Processes, Join-calculus, Mobile Ambients)
• Type systems for process calculi

Lectures & exercises

Some mathematical maturity, object-oriented programming (Java or C#), functional programming (Haskell or ML), formal language theory and program semantics corresponding to the level of the OOP, PP and SS courses in the CS and SW masters programmes at AAU.

Learning objectives:

A broad understanding of fundamental programming language theory and connections between various formalism and their application in modern programming language definitions.


Bent Thomsen, Associate Professor, email:
Hans Hüttel, Associate Professor, email:
Lone Leth Thomsen, Associate Professor, email:


Bent Thomsen, Lektor,
Hans Hüttel, Lektor,
Possibly: Alan Mycroft, Professor, and Andrew Gordon, Professor,




December 11-13, 2013


Aalborg University

Zip code:


Number of seats:

November 20, 2013

Important information concerning PhD courses
We have over some time experienced problems with no-show for both project and general courses. It has now reached a point where we are forced to take action. Therefore, the Doctoral School has decided to introduce a no-show fee of DKK 5,000 for each course where the student does not show up. Cancellations are accepted no later than 2 weeks before start of the course. Registered illness is of course an acceptable reason for not showing up on those days. Furthermore, all courses open for registration approximately three months before start. This can hopefully also provide new students a chance to register for courses during the year. We look forward to your registrations.