Next: , Previous: , Up: Top   [Index]


10 Multithreading and Backtracking

The multithreading and backtracking extensions to INTERCAL were originally invented by Malcom Ryan, who implemented COME FROM-based multithreading as a modified version of C-INTERCAL, known as Threaded INTERCAL, but did not implement backtracking. (The same functionality is implemented in C-INTERCAL today, but with different code. Most likely, this means that the original code was better.) He also invented the original version of Backtracking INTERCAL, but did not implement it; the only known implementation is the C-INTERCAL one. A different version of multithreading, using WHILE, was implemented as part of CLC-INTERCAL (like all extensions first available in CLC-INTERCAL, it is most likely due to Claudio Calvelli) and then added to C-INTERCAL, although its implications were not noticed for some time afterwards.

So nowadays, three freely-mixable threading-like extensions to INTERCAL exist, all of which are implemented in C-INTERCAL. (A fourth, Quantum INTERCAL, is implemented in CLC-INTERCAL but not C-INTERCAL, and so will not be discussed further here.) If you’re wondering about the description of backtracking as a threading-like extension, it’s implemented with much of the same code as multithreading in C-INTERCAL, because the INTERCAL version can be seen as roughly equivalent to multithreading where the threads run one after another rather than simultaneously. (This conceptualisation is probably more confusing than useful, though, and is also not strictly correct. The same could probably be said about INTERCAL as a whole, for that matter.)


Next: , Previous: , Up: Top   [Index]