[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