Execute Brain****: Difference between revisions

no edit summary
(Added BBC BASIC)
No edit summary
Line 430:
 
[[/E|Implementation in E]].
 
=={{header|Elena}}==
ELENA VM Script:
<lang elena>statement ::= next;
statement ::= prev;
statement ::= inc;
statement ::= dec;
statement ::= out;
statement ::= in;
statement ::= "[" while;
statement ::= idle;
 
next ::= ">";
prev ::= "<";
inc ::= "+";
dec ::= "-";
out ::= ".";
in ::= ",";
idle ::= $any;
 
while ::= statement while_r;
 
while_r ::= "]";
while_r ::= statement while_r;
 
tape ::= statement statements;
 
statements ::= statement statements;
statements ::= $eps;
 
start ::= tape;
 
tape =>
// 1: append
&subject
// 2: goto
&subject
// 3: loop
&subject
// 4: inc action
&1 1 &echo
// 5: dec action
&1 -1 &echo
// 6: next action
&2 1 &echo
// 7: prev action
&2 -1 &echo
// 8: output action
&__write &nil 'program'output &wrap
// 9: group
&nil
sys'dynamics'groupvariable
&std'basic'factory'array_size &sys'vm'routines'egetprop 1024 &prop
&std'basic'factory'pattern &sys'vm'routines'egetprop 0 std'basic'widecharvar &prop
&union2
std'basic'factory'patternarrayfactory
std'basic'factory'newarray
0 ^refer
~ sys'dynamics'group_member ^append
// :: append method
&1 &__append &9 &prop
~ sys'dynamics'group_member ^append
// :: goto method
&2 &__append &std'dictionary'index &9 &wrap &prop
~ sys'dynamics'group_member ^append
// :: loop method
&3 &__run &std'patterns'ewhilenotzero &9 &wrap &prop
~ sys'dynamics'group_member ^append
 
// 10: in action
&__save &__get &nil 'program'input &nil &action &wrap
 
// build command batch
&cast
$body
&9
^ invoke;
 
inc => &4 |= $body;
dec => &5 |= $body;
next => &6 |= $body;
prev => &7 |= $body;
out => &8 |= $body;
in => &10 |= $body;
while => &3 &__eval &cast $body &wrap &echo |=;</lang>
 
=={{header|Erlang}}==
Anonymous user