=== The False Programming Language ===
I designed this language in '93 with two particular objectives: confusing everyone with an obfuscated syntax, and designing an as powerful language as possible with a tiny implementation: in this case a compiler executable of just 1024 bytes (!), written in pure 68000 assembler.
Here's a couple of example programs to give a taste of what False looks like:
* **Copy Files**
{ copy.f: copy file. usage: copy < infile > outfile }
ß[^$1_=~][,]#
* **Factorial**
{ factorial program in false! }
[$1=~[$1-f;!*]?]f: { fac() in false }
"calculate the factorial of [1..8]: "
ß^ß'0-$$0>~\8>|$
"result: "
~[\f;!.]?
["illegal input!"]?"
"
* **Prime Numbers**
{ writes all prime numbers between 0 and 100 }
99 9[1-$][\$@$@$@$@\/*=[1-$$[%\1-$@]?0=[\$.' ,\]?]?]#
Not just toy programs have been written in False, the list of programs in the distribution includes various useful convertion utilities, a compression program, Life, an expression evaluator, a module ripper, queens, tic-tac-toe, a html-table generator, and, probably the biggest False program ever, a complete working BreakOut clone.
If you want to look at all of this yourself, get the full False 1.2b distribution
[[http://strlen.com/files/lang/false/False12b.zip|zip]] or [[http://strlen.com/files/lang/false/False12b.lha|lha]] (includes all source, including the compiler and portable interpreter). Or just have a read of the [[http://strlen.com/false/false.txt|documentation]]. A dos port of the portable False interpreter can be found [[http://strlen.com/files/lang/false/dosfalse.exe|here]]. [[http://en.wikipedia.org/wiki/FALSE|wikipedia entry]].
=== False Links ===
False has inspired other people to implement similarly perverse languages. Some of them are:
* "Brainfuck" by Urban Mueller. If you enjoy compilers just because of their size, make sure you get a look at this! (an executable in less than 256 bytes!) [get it from [[http://aminet.net/dev/lang/brainfuck-2.lha|aminet]], or go [[http://en.wikipedia.org/wiki/Brainfuck|here]]]. This is helloworld:
>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-]
<.#>+++++++++++[<+++++>-]<.>++++++++[<+++>-]<.+++.------.--------.[-]>++++++++[
<++++>-]<+.[-]++++++++++.
* "Y" by Thomas Fischbacher. Very similar to False (syntax too), yet with some more powerful constructs. Comes with (portable) interpreter in C++ [get it from [[http://aminet.net/dev/lang/Y.lha|aminet]]]
* "Befunge" by Chris Pressey. Comes with interpreter and debugger in C. Code is different from False, but looks equally beautiful. have a look at [[http://en.wikipedia.org/wiki/Befunge|Befunge]]. factorial looks like this:
v
>v"Please enter a number (1-16) : "0<
,: >$*99g1-:99p#v_.25*,@
^_&:1-99p>:1-:!|10 <
^ <
* "Bloop" by Ben Schaeffer (Yaxman). An as yet unreleased language with features from False (and another pet language of mine, "Yax"). Ben also made a true x86 version of False (by translating the 68k code), but I lost the code (silly me).
* [[http://benhoyt.com/|Ben Hoyt]] has made a full implementation of False as both interpreter and compiler (for 386 DOS) written in ANSI-Forth! the source code is something to be seen. Get the [[http://strlen.com/files/lang/false/forth_false.zip|archive]] (local copy).
* Willow Fung has made an implementation of a False-like language for Palm OS & mobile phones (based on MIDP 2.0). Get it [[http://strlen.com/files/lang/false/nano.zip|here]] (local copy).
* Stevan Apter has implemented False in K, and it looks [[http://www.nsl.com/papers/false.htm|scary]]. He also made a new language, [[http://www.nsl.com/k/f/f.htm|F]] (Functional False) .
* [[http://math.boisestate.edu/~holmes/holmes/sfdocs.pdf|Strictly False]].
* Ian Osgood's [[http://www.quirkster.com/js/false-js.html|javascript FALSE interpreter]] and his own [[http://www.quirkster.com/js/befalse.html|Befalse language]] and [[http://esolangs.org/wiki/DUP|DUP]].
* FALSE code samples at [[http://rosettacode.org/wiki/Category:FALSE|rosettacode]]
* Additional FALSE related languages on the esolangs wiki: [[http://esolangs.org/wiki/True|True]], [[http://esolangs.org/wiki/BogusForth|BogusForth]], [[http://esolangs.org/wiki/Shelta|Shelta]], [[http://esolangs.org/wiki/Owl|Owl]] and [[http://esolangs.org/wiki/Betterave|Betterave]]