Iota and Jot

Iota, Jot, Zot
Paradigms Formal language, Turing tarpit, esoteric
Designed by Chris Barker
Developer Chris Barker
First appeared 2001 (2001)
Last release
2001 / 2001 (2001)
Implementation language Scheme, JavaScript
Platform Scheme interpreter, Web browser (JavaScript)
License Public domain
Website www.nyu.edu/projects/barker
Influenced
Zot

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.[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,

 

 

 

 

(1)

From this, one can recover the usual SKI expressions, thus:

 

 

 

 

(2)

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 0011011 denotes , whereas 0101011 denotes .

Jot

Jot is the regular language,

jot = "" | jot "0" | jot "1"

where the denote whereas the denote so that 1100 denotes whereas 1000 denotes and the reduce to Iw yielding a natural Gödel numbering of all algorithms.

Any sequence of 0 and 1 is a valid Jot algorithm.

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 1 produces the continuation , and 0 produces the continuation , and wi consumes the final input digit i by continuing through the continuation w.

See also

References

  1. Barker, Chris. "Zot". The Esoteric Programming Languages Webring. Archived from the original on 12 March 2016. Retrieved 4 October 2016.
  2. Stay, Michael (August 2005). "Very Simple Chaitin Machines for Concrete AIT". Fundamenta Informaticae. IOS Press. 68 (3): 231–247. Retrieved 20 February 2011.
  • Official website
  • 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
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.