parrotcode: Untitled | |
Contents | Language Implementations | eclectus |
Eclectus aims to be a Scheme to PIR compiler implemented in Scheme. It is based on Abdulaziz Ghuloums compiler tutorial.
Scheme code is compiled into a cons representing a Parrot Abstract Syntax Tree. This compilation is done with the help of riaxpander. This cons PAST is in the form of a S-XML data structure. The cons PAST is being emitted as NQP code. The emitted code is compiled to PIR and is being run with a PIR wrapper. Library functions are implemented in PIR.
There is a lot of room for improvements.
Going through the tutorial.
Tests are written in Scheme. The test-driver is derived from the tutorial, tweaked to emit TAP. There are Perl 5 wrappers for the scheme test scripts, in order to allow unified languages testing.
The t/*.pl scripts are used in unified languages testing. They are executing the respective t/*.t Scheme scripts. In unified languages testing the Eclectus tests are skipped, when the is no 'gauche 0.8' around.
Run individual test scripts with e.g.:
gosh -fcase-fold -I . -I riaxpander -l gauche/prelude.scm t/unary_primitives.t
- Bring Eclectus back to unified languages testing - support for strings - support for pairs - support for 'letrec - allow test-description per test case - In the longterm, Eclectus should become self-hosting
Bernhard Schmalhofer, Andreas Rottmann
http://en.wikipedia.org/wiki/Eclectus
http://www.perlfoundation.org/parrot/index.cgi?eclectus
http://www.cs.indiana.edu/%7Eaghuloum/compilers-tutorial-2006-09-16.pdf
http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf
http://www.cs.indiana.edu/%7Eaghuloum/ikarus/index.html
http://www-pu.informatik.uni-tuebingen.de/users/sperber/info-i-9900/material/konstruktion/konstruktion-10.ps
|