I started this project about 2002 and now I got this far: I have developed a working virtual machine, an assembler
and a new compiler (which I call N).
With the almost finished N compiler you can write programs in a more higher level language then it was possible
with the assembler. The compiler is about 5500 lines of C code and was hard to write. I needed more than a month
to get it working (freetime, mostly on weekends).
Here is a code example:
func main ()
int n = 1; int ret = 0; int x = 2;
print “Hello world!”;
printn n;
// call function calc
@calc (x);
// get return value from function calc
get (x);
print x;
printn n;
#ASSEMB
jsr hello;
#ASSEMB_END
exit ret;
funcend
func calc (int x)
x = x * 2 << 2; x = ++;
return (x);
funcend
#ASSEMB
lab hello;
push_s “Hello world!”, S0;
print_s S0;
push_i 1, L0;
print_n L0;
rts;
#ASSEMB_END
As you can see, even inline assembly is possible with the N compiler.
The Nano virtual machine can start multiple threads which run program parts in parallel.
This is real multithreading. It’s done by simple to use commands and makes fun.
Graphics and GUI can be done with the Flow server, which I wrote also.
The communication between the VM and the Flow server is done with TCP/IP.
So you could run the server and the VM on different machines, even on different supported
OS. I think this is a nice feature.
The latest source code can always be checked out via subversion:
svn co https://nano-vm.svn.sourceforge.net/svnroot/nano-vm nano-vm
The project homepage: Nano homepage
The lines demo video: lines demo


I’m searching someone who compiles a Windows build of my Nano VM and the graphics server Flow.
If you are interested then contact me please.
last comments