Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,77 @@
:Namespace Turing
⍝ Run Turing machine until it halts
rRunTuring (rules init halts blank itape);state;rt;lt;next
stateinit
lt
rt,blank
:If 0itape rtitape :EndIf
:While ~(state)halts
next((state(rt))¨rules[;2])rules
'No rule applies!'⎕SIGNAL(0=next)/11
(rt)next[1;3]
statenext[1;5]
:Select next[1;4]
:Case 'stay' ⍝nothing
:Case 'right'
lt,rt
rt1rt
:If 0=rt rt,blank :EndIf
:Case 'left'
:If 0=lt lt,blank :EndIf
rt,lt
lt1lt
:Else
'Invalid action'⎕SIGNAL 11
:EndSelect
:EndWhile
r(lt),rt
⍝ Display the resulting tape neatly
rlen Display t
r(lent)t
(lent)/0
r,'... (total length: ',(t),')'
⍝ Simple incrementer
t∆1_SimpleIncrementer
t 'q0' '1' '1' 'right' 'q0'
t,'q0' 'B' '1' 'stay' 'qf'
t(t) 'q0' (,'qf') 'B' '111'
⍝ Three state beaver
t∆2_ThreeStateBeaver
t 'a' '0' '1' 'right' 'b'
t,'a' '1' '1' 'left' 'c'
t,'b' '0' '1' 'left' 'a'
t,'b' '1' '1' 'right' 'b'
t,'c' '0' '1' 'left' 'b'
t,'c' '1' '1' 'stay' 'halt'
t(t) 'a' (,'halt') '0' ''
⍝ Five state beaver
t∆3_FiveStateBeaver
t 'A' '0' '1' 'right' 'B'
t,'A' '1' '1' 'left' 'C'
t,'B' '0' '1' 'right' 'C'
t,'B' '1' '1' 'right' 'B'
t,'C' '0' '1' 'right' 'D'
t,'C' '1' '0' 'left' 'E'
t,'D' '0' '1' 'left' 'A'
t,'D' '1' '1' 'left' 'D'
t,'E' '0' '1' 'stay' 'H'
t,'E' '1' '0' 'left' 'A'
t(t) 'A' (,'H') '0' ''
⍝ Run all of them and display the results
RunAll;m;ms
ms('∆'=¨ms)/ms⎕NL¯3
:For m :In ms
(1m),': ',(32 Display RunTuring m)
:EndFor
:EndNamespace

View file

@ -0,0 +1,24 @@
∆I 'QA.1' '1' 'R' 'QA'
∆I,'QA.B' '1' 'N' 'QB'
∆INCREMENTER∆I
∆B 'QA.0' '1' 'R' 'QB'
∆B,'QA.1' '1' 'L' 'QC'
∆B,'QB.0' '1' 'L' 'QA'
∆B,'QB.1' '1' 'R' 'QB'
∆B,'QC.0' '1' 'L' 'QB'
∆B,'QC.1' '1' 'N' 'QD'
∆BEAVER∆B
RRUN(F Q H T B);I;J
I1 T,T
L:(QH)/E
J(Q,'.',T[I])¨F
T[I]F[J+1]
II+2-'RNL'F[J+2]
QF[J+3]
T((I<1)B),T,(I>T)B
II+I=0
L
E:RT I