Avram is a virtual machine code interpreter. The name avram is a quasi-acronym for "Applicative ViRtuAl Machine". Some better known examples of virtual machines are the Java virtual machine and parrot. Virtual machines allow many languages to run on many platforms without needing a compiler from each language to each platform. The interpreter reads an input file containing a user-supplied application expressed in a portable virtual machine code format, and executes it on the host machine.
Avram is designed with the following features in mind.
The reason for writing avram was that I wanted to do some work using a functional programming language, didn't like any functional programming languages that already existed, and felt that it would be less trouble to write a virtual machine emulator than the back end of a compiler. The reason for distributing avram is that it may be of some use to other compiler developers, because it is independent of the source language, and is not only more portable than native code but probably an easier target. Alternatively, you might want to install avram in order to run "third party applications" on it, such as syndi and diana.
To learn more about avram, you can browse the reference manual on line or download it in pdf format. If you want to download avram, it is freely available under the terms of the GNU General Public License. Previous versions of the package have compiled successfully on Alpha, MIPS, Mac-OS, and OSF systems. The current version has been tested only on x86 platforms.
The latest release fixes some packaging problems that prevented successful compilation on systems without all of the recommended libraries. It should now be possible to compile it even on a minimally configured GNU/Linux system such as a live CD environment. Previous releases of avram included a small demonstration compiler, but this has now been superseded by Ursala.
I'm working on packaging avram for Debian but having difficulty. Anyone wishing to help should email me about it.