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.