Iota and Jot
Chris Barker (linguist)'s #Iota and #Jot languages (2001, from Greek iota ι, Hebrew yodh י, the smallest letters in those two alphabets) are extremely minimalist formal systems, designed to be even simpler than other more popular alternatives, such as the lambda calculus and SKI combinator calculus. They can therefore also be considered minimalist computer programming languages, or Turing tarpits, esoteric programming languages that are designed to be as small as possible but still Turing-complete. Both systems use only two symbols and involve only two operations. #Zot (2002) is a successor to Iota that supports input and output.[1]
Universal iota
Chris Barker's universal iota combinator has the very simple λf.fSK structure defined here, using denotational semantics in terms of the lambda calculus,
From this, one can recover the usual SKI combinator calculus#SKI expressions as follows:
Because of its minimalism, it has influenced research concerning Chaitin's constant.[2]
Iota
Iota is the LL(1) language that prefix orders trees of the aforementioned #Universal iota combinator leafs, consed by function application ,
iota = "1" | "0" iota iota
so that for example denotes , whereas denotes .
Jot
Jot is the total regular language
jot = "" | jot "0" | jot "1"
where the denote whereas the denote and the reduce to yielding a Gödel numbering of all algorithms.
Zot
The Zot and Positive Zot languages command #Iota computations, from inputs to outputs by continuation-passing style, in syntax resembling #Jot,
zot = pot | "" pot = iot | pot iot iot = "0" | "1"
where produces the continuation , and produces the continuation , and consumes the final input digit by continuing through the continuation .
See also
References
- ^ Barker, Chris. "Zot". The Esoteric Programming Languages Webring. Archived from the original on 12 March 2016. Retrieved 4 October 2016.
- ^ Stay, Michael (August 2005). "Very Simple Chaitin Machines for Concrete AIT". Fundamenta Informaticae. 68 (3). IOS Press: 231–247. Retrieved 20 February 2011.
External links
- Barker, Chris. "Iota and Jot: the simplest languages?". The Esoteric Programming Languages Webring. Archived from the original on 7 May 2016. Retrieved 13 August 2004.
- https://esolangs.org/wiki/Iota
- https://esolangs.org/wiki/Jot
- https://esolangs.org/wiki/Zot