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.
Uniwersalny język Iota 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.
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 są skonstruowane przez aplikacje funkcji :
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 oznacza natomiast oznacza więc „1100” oznacza natomiast „1000” oznacza i ulega redukcji do 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ę i „0” tworzy kontynuację i zużywa ostatnią cyfrę wejściową działając nadal przez kontynuację .
Zobacz też rachunek kombinatorów rachunek lambda
Przypisy
Linki zewnętrzne Strona oficjalna
Kategoria:Ezoteryczne języki programowania