Mathematics and Computation

May 6, 2008

The Programming Languages Zoo

Filed under: plzoo, software — Andrej Bauer @ 12:43

I teach Theory of Programing Languages (page in Slovene). For the course I implemented languages which demonstrate basic concepts such as parsing, type checking, type inference, dynamic types, evaluation strategies, and compilation. My teaching assistant Iztok Kavkler contributed to the source code as well. I decided to publish the source code as a Programming Language Zoo for anyone who wants to know more about design and implementation of programming languages.

The languages are not meant to compete in speed or complexity with their bigger cousins from the real world. On the contrary, they are deliberately very simple, as each language introduces only one or two new basic ideas. You should find the source code useful if you want to learn the basics.

It takes time to clean up the code and translate it from Slovene to English, so I am starting with just three languages:

  • calc - a simple calculator
  • miniml - eager purely functional language
  • minihaskell - lazy purely functional language

I have many more in store: a polymorphic functional language, an imperative language, a language with record subtyping, an object-oriented language, miniScheme, and miniProlog. I will eventually clean up the source code and publish it in the PL Zoo. In the future I would like to add other languages, as well as demonstrate a variety of compilation and optimization techniques.

All langauges are implemented in Ocaml.

You are welcome to ask questions and discuss the languages on this blog.

1 Comment »

  1. I have added a boa to the zoo. It is an object-oriented language.

    Comment by Andrej Bauer — May 7, 2008 @ 00:33

RSS feed for comments on this post. TrackBack URI

Leave a comment

You must be logged in to post a comment.

Powered by WordPress