Despite the growth of multi-core technology, a large subset of programmers still have neither the tools nor the language features to write concurrent programs e ectively. When many programmers are simultaneously working on large, complex code bases with unknown bugs and insu cient documentation, they are unlikely to be very productive unless the programming language a ords them the power to create abstractions and modularise their code. Applications are formed by composing independent modules. However, concurrent algorithms do not compose well. Using classical language features such as locks and compare-and-swap operations, one either has to rewrite the algorithm from scratch or expose its internal implementation to the client. Atomic sections have simple semantics and allow programmers to compose concurrent algorithms. However, atomic sections are typically implemented using transactions. Thus, they lack performance and are restrictive to programmers. Here, we explore the implementation of atomic sections using locks instead of transactions. Firstly, we give a type system that uses universe type annotations (a form of ownershi
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.