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.
A new feature of the latest release (0.12.0) is the ability to solve mixed integer programming problems using lpsolve. (Previousy only continuous linear progamming problems were solvable.) As of version 0.11.1, Avram runs about twice as fast as previous releases due to a minor modification in the configuration script. (See the Changelog for details). Upgrading is highly recommended.
I'm working on packaging Avram for Debian but haven't gotten to grips with it. Anyone wishing to help should email me about it. For the moment, the file dpkgsel.txt contains a list of the all the libraries that can be used by Avram and their dependences, which can be installed on a Debian or Ubuntu system by these commands.
apt-get update
dpkg --set-selections < dpkgsel.txt
apt-get upgrade