Skip to content

esden/elco

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No packages published