[Oberon] Concurrency support in Oberon
John R. Strohm
strohm at airmail.net
Mon Jan 25 06:58:52 CET 2016
--- Lars (noreply at z505.com) wrote:
Jörg wrote:
>> Hi
>>
>>
>>
>>
>> If you think of Co-routines, this is not part of the Oberon language per
>> se,
>>
>> but this functionality can be added by a "MODULE Coroutines".
>>
>
> How can someone add a module that is partially a language feature? i.e.
> golang has goroutines, which are a language feature... how can oberon
> possibly allow concurrent programming without some of it being built into
> the language itself? Same goes for implementing Strings of arbitrary
> length..
As I understand it, Knuth vol. I describes coroutines as paired subroutines that are ping-ponged back and forth by a coroutine linkage module.
As for concurrency:
If the processor is a standard single-thread processor, as the VAST majority are, then it still executes one thread of control at a time (although instructions may be overlapped) and concurrency is simulated, not "true". At that point, you CAN do concurrency in a language, or you can do it in libraries. C, for example, has no explicit concurrency support (except for the "volatile" keyword), and C is routinely used in multitasking, multithreaded systems. See for example VxWorks.
More information about the Oberon
mailing list