Compiling functional, logic, and object-oriented languages

This lecture's topic is the compilation of programs from non-imperative languages to code for suitable abstract machines. Three programming paradigms are discussed: functional (Haskell), logic (Prolog) and object-oriented (C++, Java). First, each paradigm is characterised and a language definition is supplied. Then, a suitable abstract machine is defined. Finally, translation schemes are presented which focus on specific features of the languages:

  • functional: higher order functions, partial application, closures
  • logic: unification, variable binding, backtracking
  • object-oriented: hierarchies, inheritance, polymorphism

The discussion is like that about the core of the translation process from the lecture Foundations of compiler construction.

Schedule and Exercises

An up-to-date overview of the schedule and further material can be found in Rubikon. Please create an account (if you don't already have one) und register for this lecture.

Literature

  • Wilhelm, R. and Maurer, D.: Übersetzerbau, second edition, Springer-Verlag, 1997, ISBN 3-540-61692-6
  • Wilhelm, R. and Seidl, H.: Übersetzerbau: Virtuelle Maschinen, Springer-Verlag, 2007, ISBN: 978-3-540-49596-3

Contact

Prof. Dr. Helmuth Partsch

Alexander Breckel

Schedule

Wednesday 08-10 c.t. in O28-1002
Thursday 12-14 c.t. in O28-1002

Further information

course catalogue

Rubikon