Iota i Jot

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania
Iota, Jot, Zot
Pojawienie się 2001
Paradygmat Język formalny, ezoteryczny, wieloparadygmatowy, smolna dziura Turinga
Implementacje Scheme, JavaScript
Pochodne Zot
Twórca Chris Barker
Licencja Domena publiczna
Platforma sprzętowa Interpreter Scheme, Przeglądarka internetowa (JavaScript)
Strona internetowa

Iota i Jot – w teorii języka formalnego i w informatyce Iota i Jot (od greckiej litery jota ι, oraz od hebrajskiej litery jod י, najmniejszych liter w obu alfabetach) są językami programowania, będącymi niezwykle minimalistycznymi systemami formalnymi, zaprojektowanymi tak, aby były jeszcze prostsze niż inne, bardziej popularne alternatywy, takie, jak rachunek lambda i rachunek kombinatorów SKI. W związku z tym można je również uznać za minimalistyczne komputerowe języki programowania lub smolne dziury Turinga czy też ezoteryczne języki programowania zaprojektowane tak, aby były jak najmniejsze, ale nadal spełniające kompletność Turinga.

Oba systemy programistyczne używają tylko dwóch symboli i obejmują tylko dwie operacje. Oba też zostały stworzone przez profesora językoznawstwa, Chrisa Barkera w 2001 roku. Zot (2002), to następca języka Iota, który obsługuje wejście i wyjście[1].

Uniwersalny język Iota[edytuj | edytuj kod]

Uniwersalny kombinator Iota Chrisa Barkera ι ma bardzo prostą strukturę λf.fSK tu zdefiniowaną, poprzez wykorzystanie semantyki denotacyjnej na zasadach rachunku lambda:

Z tego można uzyskać zwykłe wyrażenia SKI, zatem:

Ze względu na swój minimalizm język Iota wpłynął na badania dotyczące stałej Chaitina[2].

Iota[edytuj | edytuj kod]

Iota to język LL(1), którego drzewa porządku przedrostkowego wyżej wymienionych kombinatorowych liści uniwersalnego języka Iota oraz kombinatorowych liści ι są skonstruowane przez aplikacje funkcji ε:

iota = "1"|"0" iota iota

zatem przykładowo "0011011" oznacza , natomiast "0101011" oznacza .

Jot[edytuj | edytuj kod]

Jot to język regularny,

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

gdzie oznacza natomiast oznacza więc "1100" oznacza natomiast "1000" oznacza i ulega redukcji do Iw uzyskując naturalną numerację Gödla dla wszystkich algorytmów.

Dowolna sekwencja 0 i 1 jest prawidłowym algorytmem Jot.

Zot[edytuj | edytuj kod]

Języki Zot i Positive Zot zarządzają obliczeniami Iota z wejść do wyjść poprzez styl kontynuacji przejścia, dzięki składni naśladującej Jot:

zot = pot|""
pot = iot|pot iot
iot = "0"|"1"

gdzie "1" tworzy kontynuację , i "0" tworzy kontynuację i wi zużywa ostatnią cyfrę wejściową i działając nadal przez kontynuację w.

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. Chris Barker: Zot. The Esoteric Programming Languages Webring. [dostęp 2018-10-24]. [zarchiwizowane z tego adresu (2016-03-12)].
  2. Michael Stay, Very Simple Chaitin Machines for Concrete AIT, wyd. 3, t. 68, IOS Press, sierpień 2005, s. 231-247 [dostęp 2011-02-20].

Linki zewnętrzne[edytuj | edytuj kod]