/picobit

A Compact Scheme System for Microcontrollers

Primary LanguageCGNU General Public License v3.0GPL-3.0

This is a very small Scheme system designed to run on small
microcontrollers, currently PIC18 and ARM.

It consists of

* a bytecode compiler which compiles Scheme source code to bytecode.
  The bytecode compiler is run using Racket, usually on a
  PC/workstation.

* a bytecode interpreter which can be either compiled to run on a
  microcontroller, or to be run on some common operating systems, at
  least GNU/Linux (Windows support hasn't been tested in a while,
  though, and especially the networking part might not work out of the
  box). It is written in (mostly) portable C.


USAGE:

1. Install Racket (needed to run the bytecode compiler)
     racket-lang.org

2. Build the VM:
     make
 This will build the VM with the default configuration (workstation,
 no deubgging). To configure the VM for another architecture, or with
 different options, run
     make help
 from the `vm' directory.

Note: gawk is required to build the VM.

2. Compile a Scheme program:
     ./picobit prog.scm

3. Run the resulting program:
     ./picobit-vm prog.hex

Note: The `p' script is a shortcut for compiling and running programs:
     ./p prog.scm
 is equivalent to
     ./picobit prog.scm ; ./picobit-vm prog.hex


SEE ALSO:

  * A paper describing PICOBIT has been presented to IFL 2009:
    http://www.ccs.neu.edu/home/stamourv/papers/picobit.pdf
    Slides from the presentation:
    http://www.ccs.neu.edu/home/stamourv/slides/picobit-ifl09.pdf

  * S3 (Small Scheme Stack) : A Scheme TCP/IP Stack Targeting Small
    Embedded Applications
    http://www.ccs.neu.edu/home/stamourv/papers/s3.pdf
    Slides from the presentation:
    http://www.ccs.neu.edu/home/stamourv/slides/s3-sw08.pdf

 PICOBIT is a descendant of the BIT and PICBIT systems. You can find
 papers describing these systems at:
    http://w3.ift.ulaval.ca/~dadub100/


HISTORY:

 Marc Feeley originally wrote PICOBIT around 2006.
 Vincent St-Amour took over development in 2008.
 Jim Shargo worked on a port to Racket in 2011.
 The Racket port was completed in June 2011.
 Peter Zotov (whitequark) ported PICOBIT to ARM in August 2011.

LICENCE:

 PICOBIT is released under the GPLv3.