Posted by robost86 on 05:15:00 09-17-2002
This project is about designing a virtual machine, implementing it for different architectures, and developing some software for it. Cross-compilers and assemblers will have to be written too. As for the software I've planned to be written for the VM, a Forth can be mentioned, with OO extentions (for bpt's object system contest).
So, what is there you can do?
* Writing an assembler (simple).
* Writing a compiler for some language, which outputs bytecode for the VM (medium).
* Implementing the VM on your favourite platform (I'm doing AVR and IA-32/Linux), (simple).
* Writing programs for the VM.
* Making new suggestions to the VM design (please do this BEFORE the other tasks).
If anyone feels like joining, please post here.
Posted by robost86 on 01:22:00 09-18-2002
*sob*
Posted by nonama on 04:05:00 09-18-2002
am i wrong or you are making em... m... Java?
aurimas
Posted by robost86 on 07:26:00 09-18-2002
You're on the right track, you could see this as a "light version" of Java. However, it's not meant to be used for normal applications, like Java with its socket and GUI interface. This is a system for embedded devices (the programs can of course be used on a PC, too, but that won't be as funny :-)
Posted by wossname on 05:13:00 09-19-2002
post! i join your crazy project!
Posted by robost86 on 15:08:00 09-19-2002
Wow, wossname posted!
Thanks
Posted by Smerdyakov on 21:25:00 09-19-2002
First of all, Java was originally designed for embedded systems.
Second of all, a *good* compiler is not just a "medium" project.
Third of all, VM's are lame-o! Use proof-carrying code instead!
Posted by sacah on 21:37:00 09-19-2002
I think VMs rock, they are the way to overcome crossplatform problems.
Posted by robost86 on 22:46:00 09-19-2002
Writing a simple compiler isn't that hard. I'm not asking anyone to implement magic AI techs., niether does someone hating all common languages have to participate.
I know Java once wasn't this over-bloated. These chips I'm talking about are tiny, so a _simple_ VM is needed.
There is, as far as I can see, nothing wrong with a virtual machine. It's a bit slow, but you don't buy 1-dollar PICs to find big primes.
Posted by robost86 on 22:53:00 09-19-2002
By the way, I'm not using a VM because it's safer, but simply because that most microcontrollers' program memories have many fewer write cycles than their EEPROM memories. PCC would definitly increase the complexity of this project, and that's nothing I want.
Posted by seunosewa on 05:22:00 09-22-2002
Good luck on this one, I wish you. Increase my number of posts, I have!
Posted by robost86 on 18:43:00 09-22-2002
seunosewa: Haha
I and wossname are working on this project now, we're just about done with the VM specs (only have a few I/O ports left to define), I've written a Linux debugger/disassembler, and wossname is writing an assembler.
The next step will be to test everything, make a few modifications if neccesary, then implement a test system for the VM. Either we'll just make a simple shell, or I'll implement a Forth for it. After that, I will implement the virtual machine on my new favourite toy, an AVR (www.atmel.com) test board.
If anyone else happens to be interested, porting the VM to as many platforms as possible is of course of great importance. We currently don't have any Windows or DOS port (though wossname has promissed to write one later), just a very unportable Linux debugger/VM core.
Some sort of high-level compiler would of course also be appreciated.
/Robert