Iota i Jot

język programowania

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.

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

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

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

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

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

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

Przypisy edytuj

  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, „Fundamenta Informaticae”, 3, 68, IOS Press, sierpień 2005, s. 231–247 [dostęp 2011-02-20].

Linki zewnętrzne edytuj