Prologред рд╣рдо рдорд╢реАрдиреЛрдВ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рддреЗ рд╣реИрдВ

рдкреНрд░реЛрд▓реЙрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ 2 рдЫреЛрдЯреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдпрд╣рд╛рдБ рд╡реЗ рд╣реИрдВ:
1. рджрд┐рдорд╛рдЧреА рднрд╛рд╖рд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗрд╡рд╛рд▓рд╛
2. рдЯреНрдпреВрд░рд┐рдВрдЧ рдорд╢реАрди

рдкрд╣рд▓реЗ рд╣рдореЗрдВ SWI- рдкреНрд░реЛрд▓реЙрдЧ рдФрд░ рдХреБрдЫ рдЦрд╛рд▓реА рд╕рдордп рдЪрд╛рд╣рд┐рдПред

рдХрд╛рд░реНрдп 1. рджрд┐рдорд╛рдЧреА рднрд╛рд╖рд╛ рджреБрднрд╛рд╖рд┐рдпрд╛

рдЪрд▓рд┐рдП рд╢реБрд░реБрдЖрдд рдХрд░рддреЗ рд╣реИрдВ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕реЗ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рд╕реЗред
Brainfuck рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рдЧреВрдврд╝ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬрд┐рд╕реЗ 1993 рдореЗрдВ рдЕрд░реНрдмрди рдореБрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдордиреЛрд░рдВрдЬрди рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рднрд╛рд╖рд╛ рдореЗрдВ рдЖрда рдХрдорд╛рдВрдб рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдЪрд░рд┐рддреНрд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреНрд░реЗрдирдлреИрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдЗрди рд╡рд░реНрдгреЛрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИред
рдмреНрд░реЗрдирдлрдХ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдПрдХ рдорд╢реАрди рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рдХреНрд░рдордмрджреНрдз рд╕реЗрдЯ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЯреНрдпреВрд░рд┐рдВрдЧ рдорд╢реАрди рдХреЗ рдЯреЗрдк рдФрд░ рд╕рд┐рд░ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЕрд░реНрде рд╣реИ (рдЖрджреЗрд╢ рджреЗрдЦреЗрдВред)ред

рдХрдорд╛рдВрдб рдФрд░ рдЙрдирдХрд╛ рд╡рд┐рд╡рд░рдг:



рдЯреЗрдк рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдбреЗрдЯрд╛ (рдкрддрд╛, рдорд╛рди)ред
рд╕реЗрд▓ рдПрдбреНрд░реЗрд╕ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реЗрдб
рд╕реНрдерд┐рддрд┐ (рдкрддрд╛)ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдХреЛрдб:
% , cout:- %    pos(Addr), %  data(Addr,Value), %    put_char([Value]). % . cin:- %    pos(Addr), %    retract(data(Addr,_)), %  get_single_char(Value), %    assert(data(Addr,Value)). % + - add(AddValue):- %  pos(Addr), %  retract(data(Addr,Value)), %   1 NewValue is Value+AddValue, %   assert(data(Addr,NewValue)). % > < addr(Side):- %   retract(pos(Addr)), %   NewAddr is Addr+Side, %     assert(pos(NewAddr)), %       (data(NewAddr,_),!;assert(data(NewAddr,0))). % ] goto:- %  pos(Addr), %      0 data(Addr,Value),Value==0,!, % 0,        retract(circle([_|L])), %  assert(circle(L)). goto:- %     circle([[N,_]|_]), seeing(Stream), seek(Stream,N,bof,_). % [ loop:- %       retract(circle(L)), seeing(Stream), %    character_count(Stream,Pos), %   %(  = 0,     ) pos(Addr), data(Addr,Value), assert(circle([[Pos,Value]|L])). do:- %  get_char(X), %  step(X), %    not(at_end_of_stream),!, do. do:- % ,    seeing(Stream), close(Stream), seen. step('['):-loop,!. step(']'):-goto,!. %    " " %(       ) step(_):-circle([[_,StartValue]|_]),StartValue==0,!. step('>'):-addr( 1),!. step('<'):-addr(-1),!. step(','):-cin,!. step('.'):-cout,!. step('+'):-add( 1),!. step('-'):-add(-1),!. step(_). run(Path):- see(Path), %  (    ) retractall(pos(_)), retractall(data(_,_)), retractall(circle(_)), %    assert(pos(1)), %  0 assert(data(1,0)), assert(circle([])),do. 


рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рд┐рдЦреЗрдВ:

freest @ PC: $ swipl -s <path.tofile>
? -рд░реБрдг ('рдкрд╛рде.рдЯреЛ.рдмреНрд░реЗрдирдлрдХ.рдХреЛрдб')ред

рд╣рдо рд╡рд┐рдХреА рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗред

рдирдорд╕реНрддреЗ рд╡рд┐рд╢реНрд╡! рджрд┐рдорд╛рдЧ рдкрд░

+++++++++++ [> ++++++++++++++++++++++++++++ <<<< -]> ++
ред>ред +ред ++++++++ +++ред ++ ++ред << +++++++++++++++++++ред ++ ++ред
------.-------->> +>ред

рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рд╛рдордиреЗ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП:

freest @ PC: / рдореАрдбрд┐рдпрд╛ / C6984667984655D9 $ swipl -s bf.pro
% рдкреБрд╕реНрддрдХрд╛рд▓рдп (swi_hooks) pce_swi_hooks рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд 0.00 рд╕реЗрдХрдВрдб, 2,224 рдмрд╛рдЗрдЯреНрд╕
% /рдореАрдбрд┐рдпрд╛ / C6984667984655D9/bf.pro рд╕рдВрдХрд▓рд┐рдд 0.00 рд╕реЗрдХрдВрдб, 4,676 рдмрд╛рдЗрдЯреНрд╕
рд╕реНрд╡-рдкреНрд░реЛрд▓реЙрдЧ рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ (рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб, 32 рдмрд┐рдЯреНрд╕, рд╕рдВрд╕реНрдХрд░рдг 5.10.4)
рдХреЙрдкреАрд░рд╛рдЗрдЯ ┬й 1990-2011 рдПрдореНрд╕реНрдЯрд░реНрдбрдо рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп, VU рдПрдореНрд╕реНрдЯрд░реНрдбрдо
SWI- рдкреНрд░реЛрд▓реЙрдЧ ABSOLUTELY NO WARRANTY рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдпрд╣ рдореБрдлреНрдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╣реИ,
рдФрд░ рдЖрдкрдХреЛ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд рдЗрд╕рдХрд╛ рдкреБрдирд░реНрд╡рд┐рддрд░рдг рдХрд░рдиреЗ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ
рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ www.swi-prolog.org рдкрд░ рдЬрд╛рдПрдВред

рдорджрдж рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ? - рдорджрдж (рд╡рд┐рд╖рдп)ред рдпрд╛? - рдПрдкреНрд░реЛрдкреЛрд╕ (рд╢рдмреНрдж)ред

? - рднрд╛рдЧреЛ ('a.txt')ред
рдирдорд╕реНрддреЗ рд╡рд┐рд╢реНрд╡!
рд╕рдЪред

- -

рд╕рдорд╕реНрдпрд╛ 2. рдЯреНрдпреВрд░рд┐рдВрдЧ рдорд╢реАрди


рдлрд┐рд░ рд╡рд┐рдХреА рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд┐рджреНрдзрд╛рдВрдд
рдЯреНрдпреВрд░рд┐рдВрдЧ рдорд╢реАрди (MT) - рдПрдмреНрд╕рдЯреНрд░реИрдХреНрдЯ рдкрд░рдлрд╝реЙрд░реНрдорд░ (рдЕрдореВрд░реНрдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдорд╢реАрди)ред рдпрд╣ 1936 рдореЗрдВ рдПрд▓рди рдЯреНрдпреВрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЯреНрдпреВрд░рд┐рдВрдЧ рдорд╢реАрди рдПрдХ рдкрд░рд┐рдорд┐рдд рд░рд╛рдЬреНрдп рдорд╢реАрди рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИ рдФрд░ рдЪрд░реНрдЪ рдХреЗ рдЕрдиреБрд╕рд╛рд░ - рдЯреНрдпреВрд░рд┐рдВрдЧ рдереАрд╕рд┐рд╕, рдЕрдиреНрдп рд╕рднреА рдХрд▓рд╛рдХрд╛рд░реЛрдВ (рд╕рдВрдХреНрд░рдордг рдирд┐рдпрдореЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдХреЗ) рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдЧрдгрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЧрдгрдирд╛ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХрд╛рдлреА рдкреНрд░рд╛рдердорд┐рдХ рд╣реЛрддрд╛ рд╣реИред
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреНрдпреВрд░рд┐рдВрдЧ рдорд╢реАрди рдХреЛ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдП рдХреЗ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд░рд╛рдЬреНрдпреЛрдВ рдХрд╛ рд╕реЗрдЯ рдХреНрдпреВ рдФрд░ рдирд┐рдпрдореЛрдВ рдХрд╛ рд╕реЗрдЯ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдорд╢реАрди рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЙрдирдХреЗ рдкрд╛рд╕ рдлреЙрд░реНрдо рд╣реИ: qiaj тЖТ qi1aj1dk (рдпрджрд┐ рд╕рд┐рд░ рдХреНрдпреВрдИ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╣реИ рдФрд░ рдЕрдХреНрд╖рд░ aj рдХреЛ рдореЙрдирд┐рдЯрд░ рдХрд┐рдП рдЧрдП рд╕реЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рд┐рд░ qi1 рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, aj1 aj рдХреЗ рдмрдЬрд╛рдп рд╕реЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд┐рд░ aj dk рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рддреАрди рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВ: рд╕реЗрд▓ рд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдХреЗ рддреАрди рд╡рд┐рдХрд▓реНрдкред (L), рд╕реЗрд▓ рд╕реЗ рджрд╛рдИрдВ рдУрд░ ┬о, рдЬрдЧрд╣ (N) рдкрд░ рд░рд╣реЗрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП <qi, aj> рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдирд┐рдпрдо рд╣реИред рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдирд┐рдпрдо рдирд╣реАрдВ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдмрд╛рд░ рдорд╢реАрди рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдВрддрд┐рдо рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд╛рдЬреНрдпреЛрдВ, рдЯреЗрдк рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдорд╢реАрди рдХреЗ рдкреНрд░рдореБрдЦ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рд╣рдо рд╡реАрдХрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдордЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ

q0 * тЖТ q0 * R
q01 тЖТ q01R
q0 ├Ч тЖТ q1 ├Ч R
q11 тЖТ q2aR
q21 тЖТ q21L
q2a тЖТ q2aL
q2 = тЖТ q2 = L
q2 ├Ч тЖТ q3 ├Ч L
q31 тЖТ q4aR
q3a тЖТ q3aL
рдХреНрдпреВ 3 * тЖТ рдХреНрдпреВ 6 * рдЖрд░
q4 ├Ч тЖТ q4 ├Ч R
q4a тЖТ q4aR
q4 = тЖТ q4 = R
q41 тЖТ q41R
q4 * тЖТ q51R
q5 * тЖТ q2 * L
q6a тЖТ q61R
q6 ├Ч тЖТ q7 ├Ч R
q7a тЖТ q7aR
q71 тЖТ q2aR
q7 = тЖТ q8 = L
q8a тЖТ q81L
q8 ├Ч тЖТ q9H

рдбреЗрдЯрд╛ (рдПрд▓, рд╡реА, рдЖрд░) - рдЯреЗрдк рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ (рдПрд▓ - рдмрд╛рдИрдВ рдУрд░, рдЖрд░ - рджрд╛рдПрдВ, рд╡реА - рд╡рд░реНрддрдорд╛рди рд╕реЗрд▓)ред
... [рез] [реи] [рей] [ рек ] [рел] [рем] [2] ...
L = [3,2,1] V = 4 R = [5,6,7]
рдЦрд╛рд▓реА рд╕реЗрд▓ рдорд╛рди - *

 %  revers([],R,R):-!. revers([H|T],L,R):-revers(T,[H|L],R). %    l:- %  (retract(data([Hl|Tl],V,R)),!; %    ,         (*) retract(data([],V,R)),Hl=(*),Tl=[]), %    assert(data(Tl,Hl,[V|R])). r:- %  (retract(data(L,V,[Hr|Tr])),!; %    ,         (*) retract(data(L,V,[])),Hr=(*),Tr=[]), %    assert(data([V|L],Hr,Tr)). %      n. % . %revers      (  data). initData(L,V,R):- % (   ) retractall(data(_,_,_)), %  (   ) revers(L,[],Lr), %    . assert(data(Lr,V,R)). %   input(Value):- %    ,      . retract(data(L,_,R)), %      . assert(data(L,Value,R)). %    info(Q:A:Qn:An:D):- %   write(Q:A),nl, write(Qn:An:D),nl, %    ┬л ┬╗ data(L,Value,R),revers(L,[],Lr),append(Lr,[[Value]|R],Data), write(Data),nl. %  %(, ,  , ). %        q0(*,q0,*,r). q0(1,q0,1,r). q0(x,q1,x,r). q1(1,q2,a,r). q2(1,q2,1,l). q2(a,q2,a,l). q2(=,q2,=,l). q2(x,q3,x,l). q3(1,q4,a,r). q3(a,q3,a,l). q3(*,q6,*,r). q4(x,q4,x,r). q4(a,q4,a,r). q4(=,q4,=,r). q4(1,q4,1,r). q4(*,q5,1,r). q5(*,q2,*,l). q6(a,q6,1,r). q6(x,q7,x,r). q7(a,q7,a,r). q7(1,q2,a,r). q7(=,q8,=,l). q8(a,q8,1,l). q8(x,e,x,n). %e тАФ  . start(e):-write(end),!. %   Q start(Q):- %   data(_,A,_), %   apply(Q,[A,Qn,An,D]), %  info(Q:A:Qn:An:D), %  input(An), %  call(D), %    start(Qn). 


рд╣рдо рдПрдордЯреА рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ

$ рд╕реНрд╡рд╛рдЗрд▓ -s 1.pro
? - initData ([], *, [1,1,1, x, 1,1, =, *]]ред
? - рдкреНрд░рд╛рд░рдВрдн (q0)ред

рдФрд░ рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИред

$ рд╕реНрд╡рд╛рдЗрд▓ -s 1.pro
...
? - initData ([], *, [1,1,1, x, 1,1, =, *]]ред
рд╕рдЪред

? - рдкреНрд░рд╛рд░рдВрдн (q0)ред
q0: (*)
q0: (*): рдЖрд░
[[*], резрез,резрез, x, резрез, =, *]
q0: 1
q0: 1: r
[*, [рез], резрез, x, резрез, =, *]
....
....
....
q8: рдП
q8: 1: l
[*, 1,1,1, x, [a], рез, =, рез,рез,рез,рез,рез,рез,рез, *]
q8: x
рдИ: рдПрдХреНрд╕: рдПрди
[*, 1,1,1, [x], 1,1, =, 1,1,1,1,1,1, *]
рдЕрдВрдд
рд╕рдЪред

рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ:

  1. Brainfuck
  2. рдЯреНрдпреВрд░рд┐рдВрдЧ рдорд╢реАрди
  3. Prolog

Source: https://habr.com/ru/post/In136670/


All Articles