FRACTRAN er et Turing-komplet esoterisk programmeringssprog foreslået af John Conway .
Et FRACTRAN-program skrives som en ordnet liste over positive brøker sammen med et indledende positivt heltal input n . Programmet startes ved at opdatere hele tallet n som følger:
For eksempel genererer følgende program primtal :
Startende med n = 2 genererer dette program følgende sekvens af heltal:
2, 15, 825, 725, 1925, 2275, 425, 390, 330, 290, 770, ... OEIS -sekvens A007542Efter 2 indeholder denne sekvens følgende potenser af 2:
sekvens A034785 i OEISsom er primmagter af 2.
FRACTRAN-programmet kan opfattes som en type Minsky-maskine , hvor registre er gemt i simple eksponenter i n -argumentet .
Ved at bruge Gödel-nummerering kan et positivt heltal n kode for et vilkårligt antal vilkårligt store positive heltalsvariable. Værdien af hver variabel kodes som en eksponent for et primtal i en simpel heltalsfaktorisering . For eksempel et heltal
repræsenterer tilstanden af et register, hvor en variabel (som vi vil kalde ) indeholder værdien 2, og to andre variable ( og ) indeholder værdien 1. Alle andre variable indeholder værdien 0.
FRACTRAN-programmet er en ordnet liste over positive fraktioner. Hver brøk er en instruktion, der tester en eller flere variable repræsenteret af dens nævners primfaktorer . For eksempel:
kontrollerer to variable og . Hvis og , så udføres opgaverne , , . For eksempel:
Da FRACTRAN-programmet kun er en liste over brøker, er disse test-tildelingsinstruktioner de eneste gyldige instruktioner på FRACTRAN-sproget. Derudover gælder følgende begrænsninger: