Iota and Jot
|Paradigms||Formal language, Turing tarpit, esoteric|
|Designed by||Chris Barker|
2001 / 2001
In formal language theory and computer science, Iota and Jot (from Greek iota ι, Hebrew yodh י, the smallest letters in those two alphabets) are languages, extremely minimalist formal systems, designed to be even simpler than other more popular alternatives, such as the lambda calculus and SKI combinator calculus. Thus, they can also be considered minimalist computer programming languages, or Turing tarpits, esoteric programming languages designed to be as small as possible but still Turing-complete. Both systems use only two symbols and involve only two operations. Both were created by professor of linguistics Chris Barker in 2001. Zot (2002) is a successor to Iota that supports input and output.
From this, one can recover the usual SKI expressions, thus:
iota = "1" | "0" iota iota
so that for example denotes 0011011, whereas denotes 0101011.
Jot is the regular language,
jot = "" | jot "0" | jot "1"
Any sequence of 0 and 1 is a valid Jot algorithm.
zot = pot | "" pot = iot | pot iot iot = "0" | "1"
where produces the continuation 1, and produces the continuation 0, and wi consumes the final input digit i by continuing through the continuation w.