Brainwash is an interpreter for the Brainfuck programming language.
One of the most notable features of Brainwash is its unbounded array, which allows the program pointer to move infinitely in both directions. Additionally, because each cell in the array holds a signed integer value, it's possible to work with negative values as well as positive ones.
Other implementation-specific details of Brainwash include the fact that cell values are initialized to zero, and that a cell assumes its minimum or maximum value if it's already at its limit and an appropriate command is executed. Characters that aren't part of the eight Brainfuck commands are treated as comments, except for "!" and "#" which can sometimes be commands and sometimes not.
One useful feature of Brainwash is its ability to read both program code and input from stdin, using "!" to separate the two. If the -d option is used, the "#" command can be used to print a memory snapshot of the surrounding cells to stderr, which can be useful for debugging.
Brainwash is distributed under the 2-clause revised BSD license, which is included with the software. To install Brainwash, users can use gzip or bzip2 to extract the archive, navigate to the appropriate directory, and then compile the code using GCC.
To use Brainwash, users can invoke it with a range of command-line options, such as -t for time interpretation and -d for printing the memory snapshot. Users can also read input from a file, write output to a file, or read the program directly from standard input.
Recent updates to Brainwash have included the standardization of temporary files, the ability to use unsigned character cells, removal of the -t option, finite arrays on the left, and the ability to ignore shebang lines in executable Brainfuck programs. One new feature is the optimization option (-O) which was suggested by Jon Ripley.
Version 0.3: N/A