14 ms·
There's an academic papers section on the website for Céu, which is a research language first and foremost: http://ceu-lang.org/publications.html http://ceu-la
by vanderZwan 4y ago
There's an academic papers section on the website for Céu, which is a research language first and foremost:
http://ceu-lang.org/publications.html http://ceu-lang.org/publications.html
From the references of those papers it should be easy to find others, right?
And yes, you're absolutely right that the synchronous model is more restrictive - most synchronous languages follow the GALS principle: "globally asynchronous, locally synchronous". One benefit of the synchronous model is that it can essentially be compiled to a finite state machine with a memory overhead of mere bytes per "trail" (the synchronous analogue of a thread - the code snipped above has one synchronous "main" trail that splits into two synchronous trails in the "par/or" section).
The focus on this makes sense historically, since many synchronous languages were originally designed to target hard real-time embedded systems, where available memory is small, computational tasks are usually not very heavy, and the "asynchronous" part is interacting with the real world.
But that also suggests that synchronous and asynchronous concurrency could complement each other with the right language design.