(taken from: http://www.purists.org/oroogu/)

What is Oroogu?

Oroogu is a general-purpose imperative compiler language relying
on the integer queue as its only data type. It was
designed and first implemented in September 2000 by Georg Kraml
and his then-girlfriend Angelika Riemer (joint acronym: K&R) out
of terminal frustration with stacks in general and deterministic
pushdown automata in particular.

Oroogu's main distinctivenesses:

Oroogu features exactly one data type, the integer queue.
Oroogu does not directly support conditional execution of code.
There is no construct that resembles the "if" clause you know
from other high-level languages, not even remotely. This
"feature" makes it hard to believe, at first glance, that
Oroogu is Turing-complete; however, there does exist an
informal proof of the Turing-completeness of Oroogu.
Moreover, there is a proof-of-concept program demonstrating that
the Oroogu compiler could be bootstrapped; i. e., that Oroogu
could compile its own compiler.
There are no functions;  accordingly, there is no recursion.
There is no such thing as an efficient Oroogu program. Oroogu
implementations of many of the most decidedly linear algorithms
take polynomial time. Refer to the sieve and factorization section
for two instructive examples. Moreover, it is comparatively
difficult to prove nontrivial Oroogu programs correct (e. g. by
Hoare calculus). Lastly, the language has so little syntactical
redundancy that it is probably impossible to implement decent parser
error recovery; even a single typo will usually confuse any parser
imaginable way beyond hope.


The compiler basically consists of a standard syntax-directed
parser (predictive recursive-descent algorithm working on an
L-attributed grammar). The compiler is written in ANSI C and emits
(crude) ANSI C code; the C statements issued are specified by means
of semantic actions and are generated during the one-pass analysis
phase. The compiler therefore doesn't need an actual back end. Refer
to Aho, Seti, Ullman [1986] for further information. The package is
in the Public Domain.

Instructions:
- Invoke the compiler, handing it the name of the Oroogu program to
  be translated as a command line argument. The name of the ANSI C
  source file created by the compiler consists of the name of the
  input file and the suffix ".c". The compiler does not implement any
  syntax error recovery strategy, it aborts compilation on the first
  syntax error it sees. See the error messages page for details. Note
  that there is relatively little redundancy in the Oroogu syntax, so
  the compiler's guess as to the nature of the problem may be misleading
  from your point of view.
- Again using your C compiler of choice, compile and link the C source
  file just created and the orsp.c and orsp.h files that contain the
  runtime support package.

Ported by Mia Jaap, 12/01/2003, https://www.mia-jaap.de/software/
