So, in last blog post I gave small introduction to my current project that I am working on. In this blog I want to release the first version of my current project. You can grab it from here: http://www.pradsprojects.com/despair.html
So, this piece of software that I wrote is a system to write portable programs. It has its own programming language and the program that are compiled can be executed using a Virtual Machine. The system isn’t mature and lot of things are lacking but I hope to develop it further in the future.
Let me talk a little about how this system works. You write a program using its programming language (here’s the documentation of programming language: http://www.pradsprojects.com/despairLanguageDocumentation/index.html) then compile it using compiler tool that I have written. The compiler generates a file with ‘.dbin’ extension which can be executed using the Virtual Machine.
I have created a small IDE for developing program for this system which you can download it from the project site (the one that I gave you on the top). IDE consist of editor to write and manage source code (which is fairly basic at the moment, no syntax highlighting for the moment sorry), a compiler to compile the source code and a virtual machine to run the compiled file.
Alternately, if you don’t want to create programs for the system but want to run program created by others, you’re going to have to download the VM from the project site. There are two types of VM for Windows OS: interpreter version and JIT version (Dynamic Recompiler). The JIT version is faster than interpreter version though I am still not very happy with the JIT performance, I think it can be improved more. I will port the JIT version to Linux later.
I want to create the Virtual Machine for various different platforms like android, iOS, MacOS etc so that the program written using despairLanguage can be run in different platforms. Currently the VM works in Windows and Linux.
P.S: The software is open source and is on github. Links are on the project site.