Jump to content

Iota and Jot: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Line 24: Line 24:


==Zot==
==Zot==
The Zot and Positive Zot languages command Iota computations from input to output in continuation-passing style and syntax resembling Jot
zot = pot | ""
pot = iot | pot iot
iot = "0" | "1"
where <math>1</math> produces the continuation <math>\lambda cL.L(\lambda lR.R(\lambda r.c(lr)))</math>
and <math>0</math> produces the continuation <math>\lambda c.c(\lambda f.fSK)</math>
and <math>ci</math> consumes the final input digit <math>i</math> continuing through continuation <math>c</math>.

==See also==
==See also==
*[[Lambda calculus]]
*[[Lambda calculus]]

Revision as of 13:50, 1 January 2017

Iota and its successor Jot (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 is a successor to Iota that includes input and output.[1]

Iota's universal combinator has a very simple structure (defined here using denotational semantics in terms of the lambda calculus):

From this, one can recover the usual SKI basis combinators as follows:

Because of its minimalism, it has influenced research concerning Chaitin's constant.[2]

Iota

Iota is the LL(1) Polish notation of trees of the aforementioned combinator leafs consed by function application

  iota = "U" | "$" iota iota

so that for example denotes , whereas denotes .

Jot

Jot is the regular language

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

where the denote whereas the denote and the reduce to .

Zot

The Zot and Positive Zot languages command Iota computations from input to output in continuation-passing style and 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 continuing through continuation .

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. 68 (3). IOS Press: 231–247. Retrieved 20 February 2011.