BogusForth [This project is no longer maintained]
For any question write to tbin@libero.it What is bogusforth?
bogusforth (or bf, rigorously NOT capitalized, for friends) was
an obfuscated language, based mainly upon forth (which is one of the
smartest languages, created long ago by Charles Moore), false, by Wouter
Van Oortmerssen, and TRUE, by Dewi; the latter two, in particular,
share many things with bf.
Its development has ceased, since now I develop a simpler and yet more powerful language: owl. In any case, if I receive sufficient requests or intentions of collaboration upon this project, I will resurrect it.
Hello world!
The first and useless program one meets in his programming career is
the notorious "hello, world!" clause. bf doesn't escape this point.
Let's see how to write it in bf:
"Hello, world!"i.
Simple. The i prints the
string, the dot prints a Carriage Return. To print a double quote,
escape it with \; See:
"Hello, \"beautiful\" world! I'm gone..."i.
The Fibonacci numbers series
Let's see something more challenging. Here's a line (it's a line, yes),
that calculates all the Fibonacci numbers available for a 32bit machine
with long int:
Notice that quite half the line is occupied by two strings and by the
closing commands. The j
prints the first number (which is 1) in a 10 char field, then the while
cycle (represented by the two sections enclosed in [] and by #) calculates the next
number and prints it, in a 10 char field too (second function), provided
that the last calculated number is not lesser than or equal to zero
(first function). Remember that an overflow of a signed integer turns
it into a negative one. Finally, the )0q sequence empties the stack
and exits.
Documentation
Documentation for version 0.9.4 may be obtained (note:
these documents are no longer updated):
gzipped dvi (158 Kb); The manual is not
contained into the package, and describes installation procedures,
language specs, news, math subjects and more...
as a quick reference for all the commands of version 0.9.4,
called quick.txt
as an explanation about the bf.vim installation process, called vim.txt
the changes from earlier versions are contained here (pdf file, 32 Kb).
Earlier versions of the
manual may be obtained here.
Download
last stable version: 0.9.4
Downloadable files:
the sources for 0.9.4
(recommended for Linux, freeBSD and Unix with gcc. No dependencies).
NOTE FOR WINDOWS USERS: if you are using Windows and you don't
have any less.exe pager (from djgpp or minsys distributions), you can
download less358d.zip, (268.3
Kb) by Mark
Nudelman, and install it, following the relative instructions. Put less.exe
(the main executable) in your path, to make it work, recompile bf
and that's done. You can also copy it in the bf directory, and it
should work the same, but only if you start bf always from the same
directory as working path.
There are at least two more recent versions of less for Win32. I've
chosen the 358 version because it's the one I use, and I know it works.
You're welcome if you want to try out some other versions.
previous versions
You can get previous versions (and every file on bf project) here (FTP transaction).