BareBones is an interpreter for the "Bare Bones" programming language.
BareBones should be invoked from the command line with the name of the source file given as an argument:
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 standard 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
What's New in This Release:
· this release makes identifiers case-insensitive.
· The README file now includes a summary of the language.