Matthias Zenger

Software

Here is a selection of free software I wrote in the last 13 years. Most applications are written for MacOS or for the Java platform. All software on this page is distributed as freeware.

Keris

Keris is an extension of the programming language Java which focuses on the development of extensible sofware. Keris introduces extensible modules as the basic building blocks of software. Software developed with Keris is closed in the sense that it can be executed, but it is open for future extensions. Such extensions are non-destructive: they do not require source code modifications and existing binaries persist.

Jaco

Jaco is an extensible Java compiler. This software was part of my master's thesis at the University of Karlsruhe. Jaco is written in an extension of itself: Java + extensible algebraic types. It runs on all platforms for which a Java virtual machine is available. Jaco is currently used in a couple of projects at EPFL and the School of Computer and Information Science of the University of South Australia.

Funnel

Funnel is a new programming language that is conceptually based on functional nets. The Funnel compiler maps Funnel programs to an intermediate language which is then interpreted by a virtual machine. Funnel programs can access the full Java API through a rudimentary Java interface. This prototype implementation is experimental and should be considered as work in progress.

JavaParty

JavaParty is an extension of Java with features that facilitate the development of distributed applications. It provides:
  • Transparent Remote Objects: Although RMI seems to offer this, you really have to re-work your multi-threaded Java programs significantly before you can exploit the combined computing power of all your workstations with RMI. JavaParty programs are just a tiny step away from regular Java.
  • Object Mobility: JavaParty objects are free to move from one node of the network to another. Object migration results in locality of access and therefore may hide network latency.
JavaParty compiles programs to ordinary Java bytecode, and interfaces with existing Java code, retaining the broad compatibility to Java. I was the original developer of this software. From 1999 on, it was maintained by staff of the Institute for Program Structures and Data Organization of the University of Karlsruhe, Germany.

MacBPM

Initially, MacBPM was intended to be a simple bpm (beats per minute) counter. I wrote it in order to count the beats of my dance music CDs. From time to time, I added a database module for cataloging music tracks and a playlist compilation utility. MacBPM is mainly useful for DJs. Indeed, there are really a lot of them using it, since there is no other comparable Mac program available. This is a MacOS 9 application and I have currently no plans to port it to MacOS X.

Pizzeria

Pizzeria is a small integrated development environment for the Pizza programming language. Pizza is a superset of Java that incorporates three additional features: parametric polymorphism, first-class functions and algebraic data types with support for pattern matching. Pizzeria was the only free native Java IDE on MacOS for a long time.

LiLa

LiLa is a Lisp programming environment for MacOS 9 with a built-in interpreter and compiler. I started already more than 12 years ago with the implementation. The MacOS version is actually a port of my former Amiga Lisp interpreter. I wrote LiLa in order to get experience with the implementation of functional programming languages. LiLa is completely written in Modula-2. This allowed me to include a lot of multi-purpose modules I wrote during my Amiga times (including long integers, complex numbers, a garbage collector, etc.). Although the system is not really fast, it was my Lisp interpreter of choice for a long time.