Introducing Io and Amalthea

This is a beta version of Amalthea. While the interpreter itself is mostly done the distribution, including documentation, example code, and standard libraries, is far from. But since I don't seem to be able to finish that in the near future I thought someone might still want a look at what's here. If you like it, please contribute to the development of Amalthea! Mail me interesting examples, bug fixes, and standard library extensions, if you produce them. This version of Amalthea is copyrighted by me, but Amalthea is and will remain both Open Source and freely available with no restrictions on use and or distribution.

This distribution contains an executable for the Microsoft Windows family of operating systems. Linux users will need to have O'Caml and compile the sources themselves. Linux users are probably more likely not to find this a problem.

The main source of information on how to actually program in Io has to be considered the book mentioned below, freely available on the web. That is for now, I am slowly working on a complete introduction to include with Amalthea.

Amalthea is an interpreter for a computer language by the name of Io. Or rather, it's an interpreter for an extended version of what is likely to be a subset of the original language. The specification for the language Io, as designed by Raphael L. Levien can be found in the paper "Io: a new programming notation", published in 1989. This paper has however turned out to be hard to get by and the only reference to Io readily available is a chapter in a book available online, Advanced Programming Language Design, Raphael A. Finkel 1996. This chapter is the source of information upon which Amalthea is based, but it makes no claim of completely covering Io. Amalthea implements everything this chapter covers, bar mutable global variables which are only hinted at, and adds a simple module system on top of that. It does however use a slightly altered naming convention for the standard functions as this was ambigious in this chapter.

Martin Sandin
d97masa@dtek.chalmers.se