Talk:2-ill
Jump to navigation
Jump to search
1st Example Program
What is the 1st example program in this article supposed to do? When I trace it, I get:
$ - start here (going south) @ - turn ccw (now east) @ - turn ccw (now north) @ - turn ccw (now west) $ - no effect # - (going west) move tape pointer 1 space backwards, skip 2 program cells ' - no effect - fallen off the edge of the world, so halt
--Chris Pressey 18:42, 7 February 2011 (UTC)
- D'oh, never mind. The initial direction of travel is east, not south. I was confusing it with 2L. --Chris Pressey 18:45, 7 February 2011 (UTC)
- No, the program still doesn't make much sense; it inputs a bit, outputs a bit, then quits. If the bit was a 0 it quits immediately; if the bit was a 1 it moves the tape pointer 1 space backwards before quitting (it follows the last three steps of the trace I posted above.) --Chris Pressey 22:39, 7 February 2011 (UTC)
- Makes more sense now, I think -- see my comment in the "Skip two program cells" section below. --Chris Pressey 00:10, 9 February 2011 (UTC)
- No, the program still doesn't make much sense; it inputs a bit, outputs a bit, then quits. If the bit was a 0 it quits immediately; if the bit was a 1 it moves the tape pointer 1 space backwards before quitting (it follows the last three steps of the trace I posted above.) --Chris Pressey 22:39, 7 February 2011 (UTC)
"Skip two program cells"
What exactly does it mean to "skip two program cells"? In the following:
$#abcd
...would the execution trace be:
$ - start here # - (going east) toggle bit at tape pointer and then move tape pointer 1 space forwards, skip 2 program cells c - no effect d - no effect - fallen off the edge of the world, so halt
...or is the normal advance of the program pointer included in the "2 program cells"? (in which case b
would be included in the above trace) --Chris Pressey 22:45, 7 February 2011 (UTC)
- Although I wrote this, I forgot now. --Zzo38 22:18, 8 February 2011 (UTC)
- The 1st example makes the most sense if the trace I give immediately above is correct. In that case, it cats bits from input to output, writing 1 bits onto the tape and advancing it as it does so. (The other interpretation -- which I was originally using -- leads to it halting very soon after starting, no matter what the input is.) So, unless you object, I'm going to assume that's the intended behaviour. --Chris Pressey 00:10, 9 February 2011 (UTC)
- Okay. I believe that is probably also what I intended when I wrote it. --Zzo38 03:13, 9 February 2011 (UTC)
- Cool, thanks. --Chris Pressey 21:30, 9 February 2011 (UTC)
- I also suspect, at this point, that skipping two cells was a very smart design decision; if it were to skip just one, the idiom that I just added to the examples section would be at much harder to write. (Gemooy faces a problem very similar to that.) --Chris Pressey 16:54, 11 February 2011 (UTC)
- Cool, thanks. --Chris Pressey 21:30, 9 February 2011 (UTC)
- Okay. I believe that is probably also what I intended when I wrote it. --Zzo38 03:13, 9 February 2011 (UTC)
- The 1st example makes the most sense if the trace I give immediately above is correct. In that case, it cats bits from input to output, writing 1 bits onto the tape and advancing it as it does so. (The other interpretation -- which I was originally using -- leads to it halting very soon after starting, no matter what the input is.) So, unless you object, I'm going to assume that's the intended behaviour. --Chris Pressey 00:10, 9 February 2011 (UTC)