TURING COMPLETE!
This commit is contained in:
89
examples/rule110.zorth
Normal file
89
examples/rule110.zorth
Normal file
@@ -0,0 +1,89 @@
|
||||
(
|
||||
rule110 celular automata - https://mathworld.wolfram.com/Rule110.html
|
||||
proof of turing complentess of the language
|
||||
)
|
||||
|
||||
: over swap dup rot rot ;
|
||||
: rem over over / * - ;
|
||||
: mod dup rot swap rem swap dup rot + swap rem ;
|
||||
|
||||
: generation
|
||||
0
|
||||
begin
|
||||
dup 64 <
|
||||
while
|
||||
dup 8 * mem + 64 8 * +
|
||||
swap
|
||||
dup
|
||||
dup 1+ 64 mod 8 * mem + @
|
||||
over 8 * mem + @
|
||||
rot 1- 64 mod 8 * mem + @
|
||||
|
||||
0 = if
|
||||
0 = if
|
||||
0 = if
|
||||
( 0 0 0 )
|
||||
32 display
|
||||
swap dup 0 !
|
||||
else
|
||||
( 0 0 1 )
|
||||
35 display
|
||||
swap dup 1 !
|
||||
fi
|
||||
else
|
||||
0 = if
|
||||
( 0 1 0 )
|
||||
35 display
|
||||
swap dup 1 !
|
||||
else
|
||||
( 0 1 1 )
|
||||
35 display
|
||||
swap dup 1 !
|
||||
fi
|
||||
fi
|
||||
else
|
||||
0 = if
|
||||
0 = if
|
||||
( 1 0 0 )
|
||||
32 display
|
||||
swap dup 0 !
|
||||
else
|
||||
( 1 0 1 )
|
||||
35 display
|
||||
swap dup 1 !
|
||||
fi
|
||||
else
|
||||
0 = if
|
||||
( 1 1 0 )
|
||||
35 display
|
||||
swap dup 1 !
|
||||
else
|
||||
( 1 1 1 )
|
||||
32 display
|
||||
swap dup 0 !
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
drop
|
||||
1+
|
||||
repeat
|
||||
10 display
|
||||
drop
|
||||
0
|
||||
begin
|
||||
dup 64 <
|
||||
while
|
||||
dup 8 * dup mem 64 8 * + + @ mem rot + swap !
|
||||
1+
|
||||
repeat
|
||||
drop
|
||||
;
|
||||
|
||||
mem 32 8 * + 1 !
|
||||
0
|
||||
begin
|
||||
dup 32 <
|
||||
while
|
||||
generation
|
||||
1+
|
||||
repeat
|
||||
Reference in New Issue
Block a user