AN EMBEDDABLE HTML5 EDITOR FOR S-EXPRESSIONS

Closed Posted May 20, 2014 Paid on delivery
Closed Paid on delivery

JOB #1: A MULTI-BACKEND COMPILER FOR A FUNCTIONAL PROGRAMMING LANGUAGE

A compiler for a functional programming language. That language consists of the Simply Typed Lambda Calculus extended with recursion and algebraic datatypes, and is very similar to System F. You will be given the complete language specification, including typing rules and operational semantics. Your job is to create a compiler for the following backends: JavaScript, LLVM, Java, ObjectiveC and Python. Those backends will be used to export programs written in that language to native applications of common operating systems: Windows, Linux, OSX, Android, iOS and the web (Chrome, Firefox, Safari).

As the language consists only of pure, side-effects-free functions, you don't have to worry about IO, threading, system calls etc. The resulting code must compete with hand-written code in the target language in aspects of performance and code size, so it is acceptable to sacrifice operational semantics in favor of faster representations. In other words, instead of porting a runtime, it is preferred to write direct translations, even though they'd disrespect some semantics. For example, the following program, in a Lambda Calculus-like language:

(λx . λy . (sqrt (+ (* x x) (* y y))))

could be compiled to

function(x,y){

return [url removed, login to view](x*x + y*y);

}

or something equivalent, in JavaScript, and the program

(λf . λa . map (λx. f (f x)) a)

could be compiled to

function(f){

return function(a){

var result = [];

for (var i=0,l=[url removed, login to view]; i<x; ++i)

result[i] = f(f(x[i]));

return result;

}

}

even though those are not strictly equivalent to the original programs, due to the approximations such as usage of floats to represent numbers, dynamic arrays to represent lists and functional uncurrying. That is, as long as those approximations result in better performances on the target language, are consistent and predictable (for example, if you are going to uncurry functions, do it in them all), do not differ too much with the original semantics and are properly documented, then you are free to apply them.

We will provide you access to a test machine with a few sample programs and benchmarking/testing scripts. Your implementation will be considered satisfactory as soon as it passes all tests and conforms to performance expectations. We have implemented a prototype of the compiler in JavaScript, which already does those. You will have access to that prototype.

You are free to propose changes in the core language, as long as you justify why you think those will provide better results overall, without sacrificing functionality. You are also free to use any technologies/programming languages you like, as well as reusing existing technologies, as long as the compiler conforms specifications and runs sufficiently fast on the test machine.

The payment can be done via paypal, bank transfer or bitcoins (preferred). Feel free to contact me for more information. Please submit your proposal together with an official note of an approximated cost, as well as examples of previous works on the area.

HTML HTML5 JavaScript User Interface / IA

Project ID: #5965557

About the project

17 proposals Remote project Active Jun 26, 2014

17 freelancers are bidding on average $6064 for this job

techwelf

hi we could do it perfectly with accuracy, please let us know if you want any clarification. if you want us to share our skill and previous work please initiate the chat..

$5263 USD in 55 days
(15 Reviews)
4.7
flyonitOZ

A proposal has not yet been provided

$5263 USD in 30 days
(5 Reviews)
4.4
wentie425

A proposal has not yet been provided

$5555 USD in 30 days
(7 Reviews)
3.4
vinothmrdt88

Hi I have 4 years experience in php and mysql, c, c++, drupal, system admin etc.. Skype id : karthick_sivaraj

$5000 USD in 10 days
(0 Reviews)
0.0
sojib445566

A proposal has not yet been provided

$5555 USD in 30 days
(0 Reviews)
0.0
salestechconsult

Hello there, I hope you are doing great. I have just read your mentioned requirement and would like to discuss it in detail. I just need to your some time to get the better clarity. If you don't mind then can More

$7216 USD in 60 days
(0 Reviews)
0.0
FredOoo

I'm a web application development experts using Python, PHP, javascript... I already made C++ application for a neural network project. I know much more computer languages than specified above and have always been in More

$6920 USD in 0 days
(0 Reviews)
0.0
krishnainusa

I am working for a top notch client in USA as a lead for a team of 18 members who are working on multiple projects. I have done many projects from inception to completion and to be frank I haven't failed till today eit More

$5555 USD in 30 days
(0 Reviews)
0.0