Institute for Software Research
School of Computer Science, Carnegie Mellon University
µÆminium Language Specification
Sven Stork, Jonathan Aldrich, Paulo Marques
Writing concurrent applications is extremely challenging, not only in terms of producing bugfree and maintainable software, but also for enabling developer productivity. In this paper we present µÆminium: a core calculus for the µÆminium concurrent-by-default programming language. Using µÆminium programmers express data dependencies rather than control flow between instructions. Dependencies are expressed using permissions, which are used by the type system to automatically parallelize the application. The µÆminium approach provides a modular and composable mechanism for writing concurrent applications, provably preventing data races. This allows programmers to shift their attention from low-level, error-prone reasoning about thread interleaving and synchronization to focus on the core functionality of their applications.