[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 :)