SMETANA
Chris Pressey, 1994(ish)
A long time ago (about six years ago), I was writing some amusing notes to myself and among them was an "algorithm that'll never fly," which went something like:
- Swap steps one and two.
- Flap wings.
- Go back to step one.
It then occurred to me that reducing this form to the absurd (removing the "Flap wings" instruction) just might fail to yield a totally untractable language.
I originally wrote the interpreter as a Visual Basic application and named it SMETANA - both an acronym for "Self-Modifying, Extremely Tiny AutomatoN Application", and a reference to the composer of the same name.
The distribution available here is a much better implementation of the SMETANA interpreter in a much more device-independent and scalable form. I have retained the English syntax exactly. The program ends when it tries to peform step number n, where n is one plus the number of steps given in the source.
Syntax of the SMETANA Language:
Smetana ::= Step {".\n" Step} ".".
Step ::= "Step" Integer "." (GoTo | Swap).
GoTo ::= "Go" "to" "step" Integer.
Swap ::= "Swap" "step" Integer "with" "step" Integer.
Integer ::= "0".."9" {"0".."9"}.
Commit History
@master
git clone https://git.catseye.tc/SMETANA/
- Added tag rel_1_0_2014_0819 for changeset 0a589affb7a2 Chris Pressey 10 years ago
- Add an UNLICENSE. catseye 12 years ago
- Convert documentation to Markdown; use env to find perl. Cat's Eye Technologies 12 years ago
- Added tag rel_1_0_2004_0227 for changeset d003d7c950b5 Cat's Eye Technologies 12 years ago
- Initial import of SMETANA 2004.0227 sources. Cat's Eye Technologies 12 years ago