FRACTRAN je Turingův kompletní esoterický programovací jazyk navržený Johnem Conwayem .
Program FRACTRAN je napsán jako uspořádaný seznam kladných zlomků spolu s počátečním kladným celým číslem n . Program se spustí aktualizací celého čísla n takto:
Například následující program generuje prvočísla :
Počínaje n = 2 tento program generuje následující posloupnost celých čísel:
2, 15, 825, 725, 1925, 2275, 425, 390, 330, 290, 770, ... OEIS sekvence A007542Po 2 tato sekvence obsahuje následující mocniny 2:
sekvence A034785 v OEIScož jsou hlavní mocniny 2.
Program FRACTRAN lze považovat za typ Minského stroje , kde jsou registry uloženy v jednoduchých exponentech v argumentu n .
Pomocí Gödelova číslování může kladné celé číslo n zakódovat libovolný počet libovolně velkých kladných celočíselných proměnných. Hodnota každé proměnné je zakódována jako exponent prvočísla v jednoduché celočíselné faktorizaci . Například celé číslo
představuje stav registru, ve kterém jedna proměnná (kterou budeme nazývat ) obsahuje hodnotu 2 a dvě další proměnné ( a ) obsahují hodnotu 1. Všechny ostatní proměnné obsahují hodnotu 0.
Program FRACTRAN je uspořádaný seznam kladných zlomků. Každý zlomek je instrukce, která testuje jednu nebo více proměnných reprezentovaných prvočísly svého jmenovatele . Například:
kontroluje dvě proměnné a . Jestliže a , pak se provedou přiřazení , , , . Například:
Protože program FRACTRAN je pouze seznam zlomků, jsou tyto instrukce přiřazení testu jedinými platnými instrukcemi v jazyce FRACTRAN. Kromě toho platí následující omezení: