Re: Maybe a much simpler syntax

From: Iain Findleton (
Date: 04/06/04

Date: Tue, 06 Apr 2004 16:41:35 -0400

ulis wrote:
> Hi,
> I found the Whitespace language have a very simple syntax: 3 logical
> tokens, 5 commands.
> The Whitespace tutorial is here:
> The beginning:
> Whitespace tutorial
> The only lexical tokens in the whitespace language are Space (ASCII
> 32), Tab (ASCII 9) and Line Feed (ASCII 10). By only allowing line
> feed as a token, CR/LF problems are avoided across DOS/Unix file
> conversions. (Um, not sure. Maybe we'll sort this in a later
> version.).
> The language itself is an imperative, stack based language. Each
> command consists of a series of tokens, beginning with the Instruction
> Modification Parameter (IMP). These are listed in the table below.
> IMP Meaning
> [Space] Stack Manipulation
> [Tab][Space] Arithmetic
> [Tab][Tab] Heap access
> [LF] Flow Control
> [Tab][LF] I/O
> The virtual machine on which programs run has a stack and a heap. The
> programmer is free to push arbitrary width integers onto the stack
> (only integers, currently there is no implementation of floating point
> or real numbers). The heap can also be accessed by the user as a
> permanent store of variables and data structures.
> Many commands require numbers or labels as parameters. Numbers can be
> any number of bits wide, and are simply represented as a series of
> [Space] and [Tab], terminated by a [LF]. [Space] represents the binary
> digit 0, [Tab] represents 1. The sign of a number is given by its
> first character, [Space] for positive and [Tab] for negative. Note
> that this is not twos complement, it just indicates a sign.
> Labels are simply [LF] terminated lists of spaces and tabs. There is
> only one global namespace so all labels must be unique.
> Have fun!
> ulis

And fun it is. I whipped off a small Tcl script that allows the assemble
of this type of code. Within a Tcl interp, you can quickly assemple
complex programs in Whitespace. How completely silly. I am thinking of
plugging the interpreter into the turtleshell so the language will have
full graphics capabilities...