Execute SNUSP/D: Difference between revisions
Content added Content deleted
m (Eso link) |
m (<code> uh oh...double backslash problem) |
||
Line 18: | Line 18: | ||
::*In this implementation, the order of execution is first-created-first-executed; |
::*In this implementation, the order of execution is first-created-first-executed; |
||
::*The original specification specifies that ''(&)SPLIT''-ed old thread skips the immediate code (see below a->b->c->d example), which may lead to anti-intuition codes (which is good for an esoteric language :). This implementation retain old-thread-skips-immediate-code behavior in ''BLOATED'' mode, but new-thread-skips-immediate-code in ''SUPERNATURAL'' mode ( A->B->C->D example). 1->2->...->8 is thread creation order in ''SUPERNATURAL'' mode. |
::*The original specification specifies that ''(&)SPLIT''-ed old thread skips the immediate code (see below a->b->c->d example), which may lead to anti-intuition codes (which is good for an esoteric language :). This implementation retain old-thread-skips-immediate-code behavior in ''BLOATED'' mode, but new-thread-skips-immediate-code in ''SUPERNATURAL'' mode ( A->B->C->D example). 1->2->...->8 is thread creation order in ''SUPERNATURAL'' mode. |
||
:::< |
:::<tt style="line-height: 1em;">$*&\==&\:&\:&\:=\<br> ; ~ ~ ~ ~ &\=> new(B)<br> ; 2A 3B 4C 5D \=> old(A)<br> ; \=!\=!\=!\===*..=.#<br> ; /=!/=!/=!/===*.=.=.#<br> ; 1b 6c 7d 8a &\=> old(a)<br> ; ~ ~ ~ ~ \=> new(b)<br> \==&/;&/;&/;=/ <br></tt> |
||
*'''^ : warp''' (teleport): |
*'''^ : warp''' (teleport): |
||
#The code pointer will bounce back to the code space boundary in its reverse direction; |
#The code pointer will bounce back to the code space boundary in its reverse direction; |
||
Line 25: | Line 25: | ||
:::==a^A<=cp==B^==<=C^== |
:::==a^A<=cp==B^==<=C^== |
||
::when the code pointer cp heading into A's^, next turn, the code pointer will be in C. if no such ^ in the reverse direction, the code pointer will be in ''a'' next turn. |
::when the code pointer cp heading into A's^, next turn, the code pointer will be in C. if no such ^ in the reverse direction, the code pointer will be in ''a'' next turn. |
||
<d>module snud ; |
<code d>module snud ; |
||
private import std.string, std.random ; |
private import std.string, std.random ; |
||
Line 210: | Line 210: | ||
private char[char] acceptCmd ; |
private char[char] acceptCmd ; |
||
private uint Id = 0 ; |
private uint Id = 0 ; |
||
}</ |
}</code> |
||
Sample SNUSP using a console io : |
Sample SNUSP using a console io : |
||
<d>module rcsnusp ; |
<code d>module rcsnusp ; |
||
import snud ; |
import snud ; |
||
import std.stdio, std.file, std.conv ; |
import std.stdio, std.file, std.conv ; |
||
Line 263: | Line 263: | ||
return result ; |
return result ; |
||
}</ |
}</code> |