Embedded Lisp COmpiler (a Lisp compiler for bare metal 32bit embedded systems)
License
esden/elco
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
ELCO stands for Esdens Lisp COmpiler or Embedded Lisp COmpiler Some History: ============= The project started while trying out the Steps provided in two papers by Abdulaziz Ghuloum called "Compilers: Backend to Frontend and Back to Front Again" and "An Incremental Approach to Compiler Construction" The tests are mostly translated from sheme examples provided on Abdulazizs site http://www.cs.indiana.edu/~aghuloum. The first implementation was in CommonLisp and can be found in the cl-elco git branch. There are also tags "step1" through "step9" corresponding to the steps in "Compilers: Back to Frontend and Back to Front Again" The syntax of the ELCO was first a strange mix of CL and scheme. The current goal is to make ELCO compile arc by Paul Graham with changes that are nessesary to make the language easy to use on OS free embedded systems. Furthermore see project homepage on http://elco.sourceforge.net. Requirements: ============= Currently you need git to check out elco. To run elco you need mzscheme (http://plt-scheme.org/software/mzscheme/) Checking out: ============= >$ git clone git://github.com/esden/elco.git >$ cd elco >$ git submodule init >$ git submodule update (NOTE: the submodule steps are needed to get the sheme arc implementation to bootstrap the elco compiler) Running the Compiler: ===================== To run a simple program like 42 you run: >$ ./utils/execute.sh "42" You will get the following output: --- Use (quit) to quit, (tl) to return here after an interrupt. arc> "loading elco" arc> nil arc> "executing program" arc> "42\n" --- The last line contains the string that is the output of your program. Running Tests: ============== Go to the toplevel elco directory and run: >$ utils/run-tests.sh (NOTE: do not forget to run the submodule steps above otherwise you will not have an arc to run elco on ^^) Have fun! Cheers Piotr Esden-Tempski
About
Embedded Lisp COmpiler (a Lisp compiler for bare metal 32bit embedded systems)
Resources
License
Security policy
Stars
Watchers
Forks
Packages 0
No packages published