Karthik Senthil     About     Resume

[GSoC 2016] Progress on translator system

Over the last few days I have been working on the ICurry to ruby object code translator system. I developed the first version which successfully produced executable object code for the simple mynot.curry example -


mynot.curry

data myBool = myTrue | myFalse

myNot myTrue = myFalse
myNot myFalse = myTrue

main = myNot (myNot myTrue)

The curry program for the translator can be found here.

Currently this program is not executable with the support available in the Github repository of ruby_curry. My mentor and myself have set up a temporary try server and repo to test development stubs since the ICurry library is itself big and difficult to set up.

There is a slight re-architecture in the flow diagram of ruby_curry :-

Curry source program —> ICurry library —> .icur representation —> Ruby executable object code

i.e we have moved the compilation computations to ICurry and implemented the complete runtime environment in ruby. This is to ensure better scaling and ability to handle larger Curry programs, which could not be achieved in a ruby based compiler.

There might be further changes to better this current architecture. I will post about the same when complete :)