12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <html><head>
- <meta http-equiv="Content-Type" content="text/html;CHARSET=iso-8859-1">
- <title>Cat's Eye Technologies: The SMETANA Language</title>
- </head>
- <body bgcolor="#ffffff" text="#000000" link="#439773"
- vlink="#ac9444" alink="#0cd490"
- background="/img/sinewhite.gif" >
- <h1>SMETANA</h1>
- <P>Chris Pressey, 1994(ish)
- <hr>
- <p>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:
- <p> 1. Swap steps one and two.
- <br> 2. Flap wings.
- <br> 3. Go back to step one.
- <p>It then occurred to me that reducing
- this form to the absurd (removing
- the "Flap wings" instruction) just <i>might</i>
- fail to yield a totally untractable language.
- <p>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.
- <ul><p><i>Turns out that the word</i> smetana <i>is
- also Russian for</i> sour cream<i>. What do you know?
- Finally, I join the all-too-exclusive club of people
- who have invented a language
- named after a foodstuff!</i></ul>
- <p>The dsitribution 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 <i>n</i>, where <i>n</i> is one plus the number
- of steps given in the source.
- <!--
- <p>Todo: mine information about SMETANA's Turing-Complete
- status from the e-mail archives
- -->
- <p>Syntax of the SMETANA Language:
- <pre> 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"}.</pre>
- </body></html>
|