3 ms·
Like others here I met the Transputer at university (with Occam) and was amazed. Occam is not that much of an abstraction over the Transputer as it does quite a
by fidotron 3y ago
Like others here I met the Transputer at university (with Occam) and was amazed. Occam is not that much of an abstraction over the Transputer as it does quite a lot in microcode, including not really having an execution stack but a tree formed of workspace pointers. This means the processor itself keeps track of multiple tasks so when one is blocked (by also microcoded message channel i/o) the next one in the list is jumped to. That fits very well with occam which prefers procedures to communicate via channels rather than returning values.
Those message channels could be local to that Transputer or via a link to another one. From the code point of view it looked the same and the difference was handled again in microcode.
The shocking thing is how simple this all seemed to be with the exception of the implementation of ALT (the equivalent to select in golang, waiting on multiple channels).