I have an announcement!!!

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.

My first blog post

So, yeah I’ve decided to create a blog. I don’t know if I will get the time to update it frequently but let’s see how it goes. This blog will serve me as a place to dump my ideas and knowledge on programming and also posting some random things I guess. lol

For this first blog, I just want to write a brief introduction of my current project that I am working on. It’s almost at the stage where I am confident enough to release a first version of it. Right now I am testing things so that basic stuffs that it can do are bug free.

So, what is the project all about? Well, it’s not just one piece of software actually. I have created a Virtual Machine (register based, with it’s own instruction set and architecture), a compiler to write programs that can run on the VM, and IDE to manage the source codes. The VM is of two types: one is interpreter while the other one is based on Dynamic Recompilation (some people like the term Just In Time, but coming from emulation scene, I prefer to call it DynaRec :P). Currently the dynarec version is only for x86_64 machines but I plan to port it to different CPU architectures. I will talk about the differences between interpreter and dynarec version in another blog post.

Ok, I guess that’s enough introduction for now. haha