Aaron Turon
Northeastern University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Aaron Turon.
symposium on principles of programming languages | 2015
Ralf Jung; David Swasey; Filip Sieczkowski; Kasper Svendsen; Aaron Turon; Lars Birkedal; Derek Dreyer
We present Iris, a concurrent separation logic with a simple premise: monoids and invariants are all you need. Partial commutative monoids enable us to express---and invariants enable us to enforce---user-defined *protocols* on shared state, which are at the conceptual core of most recent program logics for concurrency. Furthermore, through a novel extension of the concept of a *view shift*, Iris supports the encoding of *logically atomic specifications*, i.e., Hoare-style specs that permit the client of an operation to treat the operation essentially as if it were atomic, even if it is not.
symposium on principles of programming languages | 2011
Aaron Turon; Mitchell Wand
Fine-grained concurrent data structures are crucial for gaining performance from multiprocessing, but their design is a subtle art. Recent literature has made large strides in verifying these data structures, using either atomicity refinement or separation logic with rely-guarantee reasoning. In this paper we show how the ownership discipline of separation logic can be used to enable atomicity refinement, and we develop a new rely-guarantee method that is localized to the definition of a data structure. We present the first semantics of separation logic that is sensitive to atomicity, and show how to control this sensitivity through ownership. The result is a logic that enables compositional reasoning about atomicity and interference, even for programs that use fine-grained synchronization and dynamic memory allocation.
conference on object-oriented programming systems, languages, and applications | 2011
Aaron Turon; Claudio V. Russo
Coordination can destroy scalability in parallel programming. A comprehensive library of scalable synchronization primitives is therefore an essential tool for exploiting parallelism. Unfortunately, such primitives do not easily combine to yield solutions to more complex problems. We demonstrate that a concurrency library based on Fournet and Gonthiers join calculus can provide declarative and scalable coordination. By declarative, we mean that the programmer needs only to write down the constraints of a coordination problem, and the library will automatically derive a correct solution. By scalable, we mean that the derived solutions deliver robust performance both as the number of processors increases, and as the complexity of the coordination problem grows. We validate our claims empirically on seven coordination problems, comparing our generic solution to specialized algorithms from the literature.
Electronic Notes in Theoretical Computer Science | 2011
Aaron Turon; Mitchell Wand
We give a new treatment of the @p-calculus based on the semantic theory of separation logic, continuing a research program begun by Hoare and O@?Hearn. Using a novel resource model that distinguishes between public and private ownership, we refactor the operational semantics so that sending, receiving, and allocating are commands that influence owned resources. These ideas lead naturally to two denotational models: one for safety and one for liveness. Both models are fully abstract for the corresponding observables, but more importantly both are very simple. The close connections with the model theory of separation logic (in particular, with Brookes@?s action trace model) give rise to a logic of processes and resources.
programming language design and implementation | 2012
Aaron Turon
Efficient communication and synchronization is crucial for fine grained parallelism. Libraries providing such features, while indispensable, are difficult to write, and often cannot be tailored or composed to meet the needs of specific users. We introduce reagents, a set of combinators for concisely expressing concurrency algorithms. Reagents scale as well as their hand-coded counterparts, while providing the composability existing libraries lack.
symposium on principles of programming languages | 2017
Aaron Turon
In 2015, a language based fundamentally on substructural typing–Rust–hit its 1.0 release, and less than a year later it has been put into production use in a number of tech companies, including some household names. The language has started a trend, with several other mainstream languages, including C++ and Swift, in the early stages of incorporating ideas about ownership. How did this come about? Rust’s core focus is safe systems programming. It does not require a runtime system or garbage collector, but guarantees memory safety. It does not stipulate any particular style of concurrent programming, but instead provides the tools needed to guarantee data race freedom even when doing low-level shared-state concurrency. It allows you to build up high-level abstractions without paying a tax; its compilation model ensures that the abstractions boil away. These benefits derive from two core aspects of Rust: its ownership system (based on substructural typing) and its trait system (a descendant of Haskell’s typeclasses). The talk will cover these two pillars of Rust design, with particular attention to the key innovations that make the language usable at scale. It will highlight the implications for concurrency, where Rust provides a unique perspective. It will also touch on aspects of Rust’s development that tend to get less attention within the POPL community: Rust’s governance and open development process, and design considerations around language and library evolution. Finally, it will mention a few of the myriad open research questions around Rust.
tools and algorithms for construction and analysis of systems | 2009
Panagiotis Manolios; Aaron Turon
We introduce the All-Termination (T ) problem: given a termination solver T and a collection of functions F , find every subset of the formal parameters to F whose consideration is sufficient to show, using T , that F terminates. An important and motivating application is enhancing theorem proving systems by constructing the set of strongest induction schemes for F , modulo T . These schemes can be derived from the set of termination cores , the minimal sets returned by All-Termination (T ), without any reference to an explicit measure function. We study the All-Termination (T ) problem as applied to the size-change termination analysis (
international conference on functional programming | 2013
Aaron Turon; Derek Dreyer; Lars Birkedal
\mathit{SCT}
symposium on principles of programming languages | 2013
Aaron Turon; Jacob Thamsborg; Amal Ahmed; Lars Birkedal; Derek Dreyer
), a PSpace -complete problem that underlies many termination solvers. Surprisingly, we show that All-Termination
symposium on principles of programming languages | 2014
Lindsey Kuper; Aaron Turon; Neelakantan R. Krishnaswami; Ryan R. Newton
(\mathit{SCT})