Whitespace
- What is Whitespace?
-
Most modern programming languages do not consider white space characters
(spaces, tabs and newlines) syntax, ignoring them, as if they weren't there.
We consider this to be a gross injustice to these perfectly friendly members
of the character set. Should they be ignored, just because they are invisible?
Whitespace is a language that seeks to redress the balance. Any non whitespace
characters are ignored; only spaces, tabs and newlines are considered syntax.
- What are the advantages of Whitespace?
-
Some things which are difficult in other languages are made much easier in
Whitespace. For example, literate programming is simply a matter of writing
your helpful comments in between program instructions. It's also easy to
encrypt your programs. Simply write a misleading comment!
Whitespace is a particularly useful language for spies. Imagine you have a top
secret program that you don't want anyone to see. What do you do? Simply print
it out and delete the file, ready to type in at a later date. Nobody will know
that your blank piece of paper is actually vital computer code!
- What does a typical Whitespace program look like?
-
Below is an extract from a program which asks for a name then outputs it
(see here for the full script.
- Where can I get it?
-
There is a prototype Whitespace interpreter available on this site,
go to this page to download it. The source code is
written in Haskell, or you can get a Linux binary. You can also read a
tutorial.
- Who is responsible?
-
The interpreter was written by someone who shouldn't have stayed up so late,
Edwin Brady, and the language was designed by two people who shouldn't have
had so much to drink, Edwin Brady and Chris Morris. No doubt Andrew
Stribblehill isn't entirely blameless either. Thanks also to the residents
of #compsoc for their helpful suggestions and programs.
eb@dcs.st-and.ac.uk
Released April 1st, 2003
Last Updated May 4th, 2004
Hosted by Durham University Computing
Society
|