(Universal Virtual Machine)
The goal of this project is to build some new virtual architecture. It
produces some questions: why somebody need new, for example. I've
started this project on the last week of the previous millennium
because I've not found any suitable VM for my goals at that
moment. Then I summarize (after some investigations) the features I'd
like to view in a new VM. I've found that some of those goals
are achieved in some existing projects, but the project which
achieves all of them doesn't exists.
The main idea is construct a virtual machine from pieces called
"Arithmetic Modules". Each module is a virtual device with a set of
input/output ports. Each module can perform any operation - from very
simple to very complex. Then we construct more complex units by
connecting these modules. Add some general operations like `move' and
branches to it and you will get something like we have gotten.
Our new goal - add a mechanism of describing modules (by XML) and
adding new ones to existing architecture.
See this picture (
general view on our codegenerator).
- The Quirks quickest guide (
It is a brief introduction to the UVM principles.
- The Quirks UVM architecture overview (
It is a more detailed review of the UVM architecture.
- The Quirks UVM command set (
It is a Quirks UVM commands reference.
- The Quirks UVM binary code file format (
It is a description of a binary module format which Quirks uses.
- (18 Apr 2002)
The release 1.1d3 is out.
- (11 Apr 2002)
First small Ada program was compiled to UVM with our quirks-ada
- (7 Apr 2002) We have added
commands for debug printing. So, now we can write "Hello, World!" from
We have two mailing lists:
mailing list contains information about releases and other valuable events
related to the project. You can subscribe by sending your request to
or through this
mailing list is intended for various discussions. You can contribute
this project by sending a letter (if you have some thinks about the
goals or design, fill free to post your message). You can subscribe by
sending your request to
or through this
We need your help!
If you would like to participate the development, send e-mail
Sergei Lodyagin, the Quirks UVM project leader).