Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Aaron Turon is active.

Publication


Featured researches published by Aaron Turon.


symposium on principles of programming languages | 2015

Iris: Monoids and Invariants as an Orthogonal Basis for Concurrent Reasoning

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

A separation logic for refining concurrent objects

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

Scalable join patterns

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

A Resource Analysis of the π-calculus

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

Reagents: expressing and composing fine-grained concurrency

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

Rust: from POPL to practice (keynote)

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

All-Termination(T)

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

Unifying refinement and hoare-style reasoning in a logic for higher-order concurrency

Aaron Turon; Derek Dreyer; Lars Birkedal

\mathit{SCT}


symposium on principles of programming languages | 2013

Logical relations for fine-grained concurrency

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

Freeze after writing: quasi-deterministic parallel programming with LVars

Lindsey Kuper; Aaron Turon; Neelakantan R. Krishnaswami; Ryan R. Newton

(\mathit{SCT})

Collaboration


Dive into the Aaron Turon's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Olin Shivers

Northeastern University

View shared research outputs
Top Co-Authors

Avatar

Amal Ahmed

Northeastern University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge