--- layout: site ---

A completely object oriented virtual machine

Leaving the old (c) world behind to go where no machine has gone before (or something like that)

Architecture

Salama is maybe the first successful attempt at writing a virtual machine without the use of c or c tools. It defines and implements an object virtual machine completely in object oriented terms, using ruby to bootstrap itself.

Just some of the features, most of which would not be possible in c:

Off course salama contains a parser (PEG based) and a binary executable generation layer (in ruby)

Status

While the project is just getting on two years, it is starting to settle conceptually, progress smoothly, and produce working binaries.

In numbers, there are over 1000 commits, 6 sub-projects, more than 10k lines of code and well over 600 tests.

Maybe more importantly there is good documentation along with an evolved idea of how most of the difficult issues are solved. So while the executables are still of the "Hello world" quality, there are no coneptual problems anymore.

There is also an interpreter (mostly for testing) and a basic visual debugger which not only helps debugging, but also understanding of the machine.

Docs

The short introduction is under the architecture menu.

The full documentation is in form of a gitbook and can be viewed , and edited

The about section has some info of when and how this started. If you feel like contributing read this or write a mail .

Last but not least, i try to get recent developments down on paper when they are still fresh, which you can read in the news section.

{{ site.posts.first.date | date: "%d.%m.%y" }}: {{ site.posts.first.title }}