Abstract

• Monitors can be combined with referential semantics given an appropriate set of typing rules. • Monitors can be used at different levels of granularity. • Limitations of monitors regarding performance and expressiveness can be addressed while maintaining safety guarantees. Most current programming languages do not restrict the use of the concurrency primitives they provide, leaving it to the programmer to detect data races. In this paper, we revisit the monitor model, which guards against data races by guaranteeing that accesses to shared variables occur only inside monitors, and show that this concept can be implemented in a programming language with referential semantics, given appropriate typing rules. We describe the Aria programming language, designed with native monitors according to these rules. Through the discussion of classic concurrency problems, we evaluate the use of Aria monitors for synchronization at different levels of granularity and extend the language with new features to address the limitations of monitors regarding performance and expressiveness.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call