Changes between Version 37 and Version 38 of GSoc2011

03/14/11 13:15:56 (11 years ago)

Add in a proposal about writing a bootstrapped JavaScript compiler for Parrot.


  • GSoc2011

    v37 v38  
    216216 * '''Difficulty''': 4/5 
    217217 * '''Links of Interest''':,, 
    218  * '''Possible Mentors''': dukeleto, whiteknight 
     218 * '''Possible Mentors''': dukeleto, Whiteknight 
    219219 * '''Details''': PL/Parrot embeds Parrot Virtual Machine into PostgreSQL. It was written before the new Parrot embed API was written, which has a much nicer interface. This project will consist of refactoring the PL/Parrot codebase to use the new API. In the process of converting to the new embed API, many bugs in PL/Parrot will be fixed, since PL/Parrot inherits many bugs from the old embed API. 
    220220 * '''Expected Deliverables''': A new implementation of PL/Parrot that uses the new embed API. The PL/Parrot and PL/Perl6 test suite should pass, more tests should be added, and developer docs should be written so that it is easier for other developers to contribute to PL/Parrot. 
     222=== Javascript on Parrot === 
     224 * '''Difficulty''': 1/5 - 4/5 
     225 * '''Links of Interest''':, 
     226 * '''Possible Mentors''': Whiteknight 
     227 * '''Details''': Implement a JavaScript compiler on Parrot, written either mostly or entirely in JavaScript. The student may start with an existing project (such as Jaspers), or create a new project from scratch. The successful project will attempt to use as much existing JavaScript code as possible to implement the compiler. This can include parser generator utilities such as PEG.js or jison. If the student can find a suitable compiler frontend written in JavaScript, he/she could opt to implement a PIR/PBC backend for the existing frontend. Jaspers is a project which has not proceeded far past the design state which intends to use the PEG.js parser library and an existing JavaScript language grammar to produce such a compiler. Other projects such as Cafe, provide much of the needed compiler infrastructure but would require a suitable PIR/PBC backend. The overall difficulty of this project will be determined by the path the student wishes to take, and the amount of existing JavaScript the student is able to reuse.  
     228 * '''Expected Deliverables''': A working JavaScript compiler, written in whole or in part in JavaScript itself. The compiler should be able to "bootstrap" and compile itself. The compiler need not come with any particular set of runtime libraries, although being able to conform to the common.js spec or other standards would be an added bonus.