Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy.
—Alan Perlis
| 20-FEB-2008: | Release 0.4 makes identifiers case-insensitive. The README file now includes a summary of the language. |
| 13-FEB-2008: | Release 0.3 adds an optional optimizer, which significantly improves performance of one very common Bare Bones idiom. |
BareBones is an interpreter for the "Bare Bones" programming language defined in Chapter 11 of Computer Science: An Overview, 9th Edition, by J. Glenn Brookshear.
A brief summary of the Bare Bones language may be found here.
BareBones should be invoked from the command line with the name of the source file given as an argument:
barebones prog1.bb
Optionally, additional command line arguments may be used to initialize variables:
barebones X=37 Y=116 prog1.bb
One extension is added to the language as defined in the book. At the beginning of a Bare Bones source file, prior to the program proper, variables may be initialized to non-negative integer values:
init X = 37;
By default, variables that are not initialized explicitly will be implicitly initialized to zero. If the "-u" option is given on the command line, this initialization is suppressed, and any reference to an uninitialized variable, other than in a clear statement, will result in a run time error.
Before the program is interpreted, the initial values of all variables will be printed to standard output. After successful completion of the interpreter, the final values will be printed.
The "-O" command line option enables optimization of the program. Currently only one type of optimization is performed. A common idiom in Bare Bones programs is to use a while loop to add one variable to another, clearing the first in the process. The optimizer will recognize this idiom and implement a direct solution, replacing the standerd iterative interpretation of the while loop.
Two sample Bare Bones programs are provided in the "examples" subdirectory. fibonacci.bb will compute the Nth number in the Fibonacci sequences. factorial.bb will compute the factorial of a (small) positive integer.
For example, to compute six factorial:
barebones N=6 examples/factorial.bb
Bare Bones is made available under the terms of the Free Software Foundation's General Public License, Version 3.
Source code is available for download.
Bare Bones development uses the Subversion revision control system. Instructions for access to the Subversion repository for Altogether are found at http://svn.brouhaha.com/, and there is a web interface to browse the repository at http://svn.brouhaha.com/viewvc/barebones.
|
Last updated February 13, 2008 Copyright 2008 Eric Smith |
|
|