Yield - A extensible Virtual Machine writen in Java
Sometimes it's interesting to use a Virtual Machine for run a program. When we know all the instructions for a VM, we can build several programming languages in high level and a compiler for these languages. Some real programming languages uses this strategy, the most famous Virtual Machines are CLR (Common Language Runtime) for .Net and a JMV (Java Virtual Machine) for Java. In some classes of Compiler theory, may be interesting generate code for a VM, in this case we cannot need to learn the instructions of a particular architeture to generate code for then. The Yield it's a virtual machine built for this purpose. Writen in Java, Yield it's a extensible VM that focus on simplicity. The instruction set contain 28 instructions, that provides power to make conditions, loops, procedures, aritmetic operations and string manipulations.
The Yield VM works based on a stack values. When you run an Yield bitecode, you are manipulate values on the stack. The Yield bitecode was develop using the Three Address Code (TAC) architecture. Thus, it's easy to make some optimizations before convert this representation to Assembly language.
The Yield can be run on Windows, Mac OS and Linux. The only require is a Java Runtime Enviroment. The Yield is a jar file that can be download at here. To see more details about the instructions, how to use a VM and examples, all of this are avaliable on Yield wiki. If you want to extend the VM you can download the source code and see the page How to Extend.
Next Version
It's coming soon the next version of Yield VM. The new features are:
Garbage collector
30 Day Summary not available |
12 Month Summary not available |
Copyright
©
2013
Black Duck Software, Inc.
and its contributors, Some Rights Reserved. Unless otherwise marked, this work is licensed under a
Creative Commons Attribution 3.0 Unported License
. Ohloh
®
and the Ohloh logo are trademarks of
Black Duck Software, Inc.
in the United States and/or other jurisdictions. All other trademarks are the property of their respective holders.