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:
Install Racket (needed to run the bytecode compiler) racket-lang.org
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.
Compile a Scheme program: ./picobit prog.scm
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.