Iota i Jot

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

Szablon:Język programowania infobox 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

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

ι:=λf.((fS)K)

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

I=(ιι),K=(ι(ι(ιι))),S=(ι(ι(ι(ιι)))).

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

Iota

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 Szablon:Mvar są skonstruowane przez aplikacje funkcji Szablon:Mvar:

iota = "1"|"0" iota iota

zatem przykładowo „0011011” oznacza ((ιι)(ιι)), natomiast „0101011” oznacza (ι(ι(ιι))).

Jot

Jot to język regularny,

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

gdzie w1 oznacza (wι) natomiast w0 oznacza (ιw) więc „1100” oznacza (ιι)(ιι) natomiast „1000” oznacza ι(ι(ιι)) i 0*w ulega redukcji do Szablon:Mvar uzyskując naturalną numerację Gödla dla wszystkich algorytmów.

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

Zot

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ę λcL.L(λlR.R(λr.c(lr))), i „0” tworzy kontynuację λc.cι i Szablon:Mvar zużywa ostatnią cyfrę wejściową Szablon:Mvar działając nadal przez kontynuację Szablon:Mvar.

Zobacz też

Przypisy

Szablon:Przypisy

Linki zewnętrzne