NVM stands for NVM Virtual Machine (yes, right. It’s the still-and-forever popular recursive acronym). NVM Virtual Machine is a small, quite portable and as I hope fast virtual machine. I’ve written it without precise purpose as a work for studies but I’m considering using it for scripting one of my µC projects (mobile robot).
It consist of three programs: assembler (+disassembler), execution environment and compiler of a high-level language (higher than assembler). First two are written in C, whereas compiler is written using ocamllex and ocamlyacc.
Currently, the latest version is available at: NVM it still needs a lot of work and tests. Feel free to comment it.
An example of language which is compiled by ocamllex and ocamlyacc:
def fibo($a, $b)
$c = $a + $b;
puti($a);
puts($Sep);
$a = $b;
$b = $c;
if ($c < 10000)
call fibo($a, $b);
;;
;;
def start($test)
$Sep = 'n';
puts('Fibonacci series:n');
call fibo(1, 1);
;;
Language has support for functions, global and local variables, some string support and that’s all. It has if and while keywords implemented also.
What's New in This Release:
· This is a complete and running version, but it needs a lot of testing.
· A few examples of the ASM and the higher-level language are provided.
· Compilation was tested on the x86, x86_64, and Cygwin (x86) platforms.
Product's homepage