All posts by Andrej Bauer

The new and improved Programming languages zoo

It is my pleasure to announce the new and improved Programming languages Zoo, a potpourri of miniature but fully functioning programming language implementations. The new zoo has a decent web site, it is now hosted on GitHub, and the source code was cleaned up. Many thanks to Matija Pretnar for all the work.

The purpose of the zoo is to demonstrate design and implementation techniques, from dirty practical details to lofty theoretical considerations:

  • functional, declarative, object-oriented, and procedural languages
  • source code parsing with a parser generator
  • recording of source code positions
  • pretty-printing of values
  • interactive shell (REPL) and non-interactive file processing
  • untyped, statically and dynamically typed languages
  • type checking and type inference
  • subtyping, parametric polymorphism, and other kinds of type systems
  • eager and lazy evaluation strategies
  • recursive definitions
  • exceptions
  • interpreters and compilers
  • abstract machine

There is still a lot of room for improvement and new languages. Contributions are welcome!