Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

James Riely

dblp:04/522 · DBLP profile ↗
← Back
38ranked-venue papers
6as first author
1since 2021 · last 2022
0000-0002-8731-1463ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 17 · 3 first-author · 1 since 2021Theory of computation · 15 · 2 first-authorSecurity and privacy · 6Artificial intelligence and machine learning · 1 · 1 first-authorSystems, architecture and hardware · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
10 papers
Concurrent programming · 68% Program verification · 15% Compilers and program optimization · 14%
Computer architecture, parallel and distributed computing, and storage systems
7 papers
Distributed systems · 90% Processor architecture and microarchitecture · 9% Parallel and multicore computing · 0%
Network and information security
6 papers
Hardware security and side channels · 89% Authentication and access control · 8% Systems and software security · 4%

Topics — the 30 heaviest of 41, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming
memory models
2.052022
The leaky semicolon: compositional semantic dependencies for relaxed-memory concurrency · Proc. ACM Program. Lang. 2022
Pomsets with preconditions: a simple model of relaxed memory · Proc. ACM Program. Lang. 2020
Modular transactions: bounding mixed races in space and time · PPoPP 2019
Concurrent programming › memory models
weak memory models
1.642022
The leaky semicolon: compositional semantic dependencies for relaxed-memory concurrency · Proc. ACM Program. Lang. 2022
Pomsets with preconditions: a simple model of relaxed memory · Proc. ACM Program. Lang. 2020
Transactions in relaxed memory architectures · Proc. ACM Program. Lang. 2018
Compilers and program optimization
compiler optimization
0.722020
Pomsets with preconditions: a simple model of relaxed memory · Proc. ACM Program. Lang. 2020
On Thin Air Reads Towards an Event Structures Model of Relaxed Memory · LICS 2016
Program verification
predicate transformers
0.612022
The leaky semicolon: compositional semantic dependencies for relaxed-memory concurrency · Proc. ACM Program. Lang. 2022
Program verification
program logic
0.612022
The leaky semicolon: compositional semantic dependencies for relaxed-memory concurrency · Proc. ACM Program. Lang. 2022
Distributed systems
consistency models
0.422015
From Sequential Specifications to Eventual Consistency · ICALP (2) 2015
Between Linearizability and Quiescent Consistency - Quantitative Quiescent Consistency · ICALP (2) 2014
Hardware security and side channels › microarchitectural side channel
microarchitectural leakage modeling
0.412019
The Code That Never Ran: Modeling Attacks on Speculative Evaluation · IEEE Symposium on Security and Privacy 2019
Hardware security and side channels › microarchitectural attacks › transient execution attack › speculative execution attack
spectre
0.412019
The Code That Never Ran: Modeling Attacks on Speculative Evaluation · IEEE Symposium on Security and Privacy 2019
Hardware security and side channels › microarchitectural attacks
transient execution attack
0.412019
The Code That Never Ran: Modeling Attacks on Speculative Evaluation · IEEE Symposium on Security and Privacy 2019
Concurrent programming › transactional memory
software transactional memory
0.412019
Modular transactions: bounding mixed races in space and time · PPoPP 2019
Concurrent programming › transactional memory
transactional memory semantics
0.412019
Modular transactions: bounding mixed races in space and time · PPoPP 2019
Concurrent programming › transactional memory
hardware transactional memory
0.312018
Transactions in relaxed memory architectures · Proc. ACM Program. Lang. 2018
Concurrent programming
transactional memory
0.312018
Transactions in relaxed memory architectures · Proc. ACM Program. Lang. 2018
Distributed systems
distributed coordination
0.322018
From Sequential Specifications to Eventual Consistency · ICALP (2) 2015
Transactions in relaxed memory architectures · Proc. ACM Program. Lang. 2018
Concurrent programming › concurrency models
event structures
0.212016
On Thin Air Reads Towards an Event Structures Model of Relaxed Memory · LICS 2016
Compilers and program optimization
instruction scheduling
0.212016
On Thin Air Reads Towards an Event Structures Model of Relaxed Memory · LICS 2016
Distributed systems › consistency models
eventual consistency
0.212015
From Sequential Specifications to Eventual Consistency · ICALP (2) 2015
Distributed systems › consistency models
linearizability
0.212014
Between Linearizability and Quiescent Consistency - Quantitative Quiescent Consistency · ICALP (2) 2014
Compilers and program optimization › instruction scheduling
instruction reordering
0.212022
The leaky semicolon: compositional semantic dependencies for relaxed-memory concurrency · Proc. ACM Program. Lang. 2022
Processor architecture and microarchitecture › instruction set architecture › CISC
x86-64
0.112020
Pomsets with preconditions: a simple model of relaxed memory · Proc. ACM Program. Lang. 2020
Program analysis › static analysis
information flow analysis
0.112019
The Code That Never Ran: Modeling Attacks on Speculative Evaluation · IEEE Symposium on Security and Privacy 2019
Distributed systems › transaction processing
transaction semantics
0.112018
Transactions in relaxed memory architectures · Proc. ACM Program. Lang. 2018
Authentication and access control › access control
role-based access control
0.112006
lambda-RBAC: Programming with Role-Based Access Control · ICALP (2) 2006
Programming languages and type systems
language design
0.112006
lambda-RBAC: Programming with Role-Based Access Control · ICALP (2) 2006
Concurrent programming › concurrency theory › process calculi
pi-calculus
0.021999
Trust and Partial Typing in Open Systems of Mobile Agents · POPL 1999
A Typed Language for Distributed Mobile Processes (Extended Abstract) · POPL 1998
Concurrent programming › concurrency theory
process calculi
0.021999
Trust and Partial Typing in Open Systems of Mobile Agents · POPL 1999
A Typed Language for Distributed Mobile Processes (Extended Abstract) · POPL 1998
Programming languages and type systems
type systems
0.021999
Trust and Partial Typing in Open Systems of Mobile Agents · POPL 1999
A Typed Language for Distributed Mobile Processes (Extended Abstract) · POPL 1998
Programming languages and type systems › type systems › security type systems
information-flow type systems
0.012002
Information flow vs. resource access in the asynchronous pi-calculus · ACM Trans. Program. Lang. Syst. 2002
Programming languages and type systems › type systems
security type systems
0.012002
Information flow vs. resource access in the asynchronous pi-calculus · ACM Trans. Program. Lang. Syst. 2002
Systems and software security
information flow control
0.012000
Information Flow vs. Resource Access in the Asynchronous Pi-Calculus · ICALP 2000

Methods — techniques the papers use, named apart from their topics

pomsets · 1.6preconditions · 1.4DRF-SC · 0.9compiler optimization analysis · 0.8abstraction theorem · 0.7event-based semantics · 0.6formal semantics · 0.4compiler optimization · 0.4game semantics · 0.2formal specification · 0.2quantitative analysis · 0.2lambda calculus · 0.1process algebra · 0.0may testing · 0.0failure semantics · 0.0asynchronous pi-calculus · 0.0static type checking · 0.0dynamic type-checking · 0.0
YearPublicationVenuePosition
2022 The leaky semicolon: compositional semantic dependencies for relaxed-memory concurrency
abstract
Program logics and semantics tell a pleasant story about sequential composition: when executing (S1;S2), we first execute S1 then S2. To improve performance, however, processors execute instructions out of order, and compilers reorder programs even more dramatically. By design, single-threaded systems cannot observe these reorderings; however, multiple-threaded systems can, making the story considerably less pleasant. A formal attempt to understand the resulting mess is known as a “relaxed memory model.” Prior models either fail to address sequential composition directly, or overly restrict processors and compilers, or permit nonsense thin-air behaviors which are unobservable in practice. To support sequential composition while targeting modern hardware, we enrich the standard event-based approach with preconditions and families of predicate transformers. When calculating the meaning of (S1; S2), the predicate transformer applied to the precondition of an event e from S2 is chosen based on the set of events in S1 upon which e depends. We apply this approach to two existing memory models.
Alan Jeffrey, James Riely, Mark Batty, Simon Cooksey, Ilya Kaysin, Anton Podkopaev
Proc. ACM Program. Lang.2
2020 Pomsets with preconditions: a simple model of relaxed memory
abstract
Relaxed memory models must simultaneously achieve efficient implementability and thread-compositional reasoning. Is that why they have become so complicated? We argue that the answer is no: It is possible to achieve these goals by combining an idea from the 60s (preconditions) with an idea from the 80s (pomsets), at least for X64 and ARMv8. We show that the resulting model (1) supports compositional reasoning for temporal safety properties, (2) supports all expected sequential compiler optimizations, (3) satisfies the DRF-SC criterion, and (4) compiles to X64 and ARMv8 microprocessors without requiring extra fences on relaxed accesses.
Radha Jagadeesan, Alan Jeffrey, James Riely
Proc. ACM Program. Lang.3
2019 Modular transactions: bounding mixed races in space and time
abstract
We define local transactional race freedom (LTRF), which provides a programmer model for software transactional memory. LTRF programs satisfy the SC-LTRF property, thus allowing the programmer to focus on sequential executions in which transactions execute atomically. Unlike previous results, SC-LTRF does not require global race freedom. We also provide a lower-level implementation model to reason about quiescence fences and validate numerous compiler optimizations.
Brijesh Dongol, Radha Jagadeesan, James Riely
PPoPP3
2019 The Code That Never Ran: Modeling Attacks on Speculative Evaluation
abstract
This paper studies information flow caused by speculation mechanisms in hardware and software. The Spectre attack shows that there are practical information flow attacks which use an interaction of dynamic security checks, speculative evaluation and cache timing. Previous formal models of program execution are designed to capture computer architecture, rather than micro-architecture, and so do not capture attacks such as Spectre. In this paper, we propose a model based on pomsets which is designed to model speculative evaluation. The model is abstract with respect to specific micro-architectural features, such as caches and pipelines, yet is powerful enough to express known attacks such as Spectre and Prime+Abort, and verify their countermeasures. The model also allows for the prediction of new information flow attacks. We derive two such attacks, which exploit compiler optimizations, and validate these experimentally against gcc and clang.
Craig Disselkoen, Radha Jagadeesan, Alan Jeffrey, James Riely
IEEE Symposium on Security and Privacy4
2019 On Thin Air Reads: Towards an Event Structures Model of Relaxed Memory
abstract
To model relaxed memory, we propose confusion-free event structures over an alphabet with a justification relation. Executions are modeled by justified configurations, where every read event has a justifying write event. Justification alone is too weak a criterion, since it allows cycles of the kind that result in so-called thin-air reads. Acyclic justification forbids such cycles, but also invalidates event reorderings that result from compiler optimizations and dynamic instruction scheduling. We propose the notion of well-justification, based on a game-like model, which strikes a middle ground. We show that well-justified configurations satisfy the DRF theorem: in any data-race free program, all well-justified configurations are sequentially consistent. We also show that rely-guarantee reasoning is sound for well-justified configurations, but not for justified configurations. For example, well-justified configurations are type-safe. Well-justification allows many, but not all reorderings performed by relaxed memory. In particular, it fails to validate the commutation of independent reads. We discuss variations that may address these shortcomings.
Alan Jeffrey, James Riely
Log. Methods Comput. Sci.2
2018 Eventual Consistency for CRDTs
abstract
We address the problem of validity in eventually consistent (EC) systems: In what sense does an EC data structure satisfy the sequential specification of that data structure? Because EC is a very weak criterion, our definition does not describe every EC system; however it is expressive enough to describe any Convergent or Commutative Replicated Data Type (CRDT).
Radha Jagadeesan, James Riely
ESOP2
2018 On abstraction and compositionality for weak-memory linearisability
Brijesh Dongol, Radha Jagadeesan, James Riely, Alasdair Armstrong
VMCAI3
2018 Transactions in relaxed memory architectures
abstract
The integration of transactions into hardware relaxed memory architectures is a topic of current research both in industry and academia. In this paper, we provide a general architectural framework for the introduction of transactions into models of relaxed memory in hardware, including the SC, TSO, ARMv8 and PPC models. Our framework incorporates flexible and expressive forms of transaction aborts and execution that have hitherto been in the realm of software transactional memory. In contrast to software transactional memory, we account for the characteristics of relaxed memory as a restricted form of distributed system, without a notion of global time. We prove abstraction theorems to demonstrate that the programmer API matches the intuitions and expectations about transactions.
Brijesh Dongol, Radha Jagadeesan, James Riely
Proc. ACM Program. Lang.3
2016 On Thin Air Reads Towards an Event Structures Model of Relaxed Memory
abstract
This is the first paper to propose a pure event structures model of relaxed memory. We propose confusion-free event structures over an alphabet with a justification relation as a model. Executions are modeled by justified configurations, where every read event has a justifying write event. Justification alone is too weak a criterion, since it allows cycles of the kind that result in so-called thin-air reads. Acyclic justification forbids such cycles, but also invalidates event reorderings that result from compiler optimizations and dynamic instruction scheduling. We propose a notion well-justification, based on a game-like model, which strikes a middle ground.
Alan Jeffrey, James Riely
LICS2
2016 An extensible approach to session polymorphism
abstract
Session types describe and constrain the input/output behaviour of systems. Existing session typing systems have limited support for polymorphism. For example, existing systems cannot provide the most general type for a generic proxy process that forwards messages between two channels. We provide a polymorphic session typing system for the π calculus, and demonstrate the utility of session-type-level functions in combination with polymorphic session typing. The type system guarantees subject reduction and safety properties, but not deadlock freedom. We describe a formalization of the type system in Coq. The proofs of subject reduction and safety properties, as well as typing of example processes, have been mechanically verified.
Matthew A. Goto, Radha Jagadeesan, Alan Jeffrey, Corin Pitcher, James Riely
Math. Struct. Comput. Sci.5
2015 From Sequential Specifications to Eventual Consistency
Radha Jagadeesan, James Riely
ICALP (2)2
2014 Certificates for Verifiable Forensics
abstract
Digital forensics reports typically document the search process that has led to a conclusion, the primary means to verify the report is to repeat the search process. We believe that, as a result, the Trusted Computing Base for digital forensics is unnecessarily large and opaque. We advocate the use of forensic certificates as intermediate artifacts between search and verification. Because a forensic certificate has a precise semantics, it can be verified without knowledge of the search process and forensic tools used to create it. In addition, this precision opens up avenues for the analysis of forensic specifications. We present a case study using the specification of a deleted file. We propose a verification architecture that addresses the enormous size of digital forensics data sets. As a proof of concept, we consider a computer intrusion case study, drawn from the Honey net project. Our Coq formalization yields a verifiable certificate of the correctness of the underlying forensic analysis.
Radha Jagadeesan, C. M. Lubinski, Corin Pitcher, James Riely, Charles Winebrinner
CSF4
2014 Between Linearizability and Quiescent Consistency - Quantitative Quiescent Consistency
Radha Jagadeesan, James Riely
ICALP (2)2
2013 Quarantining Weakness - Compositional Reasoning under Relaxed Memory Models (Extended Abstract)
Radha Jagadeesan, Gustavo Petri, Corin Pitcher, James Riely
ESOP4
2012 Succour to the Confused Deputy - Types for Capabilities
Radha Jagadeesan, Corin Pitcher, James Riely
APLAS3
2012 Brookes Is Relaxed, Almost!
Radha Jagadeesan, Gustavo Petri, James Riely
FoSSaCS3
2011 Local Memory via Layout Randomization
abstract
Randomization is used in computer security as a tool to introduce unpredictability into the software infrastructure. In this paper, we study the use of randomization to achieve the secrecy and integrity guarantees for local memory. We follow the approach set out by Abadi and Plot kin. We consider the execution of an idealized language in two environments. In the strict environment, opponents cannot access local variables of the user program. In the lax environment, opponents may attempt to guess allocated memory locations and thus, with small probability, gain access the local memory of the user program. We model these environments using two novel calculi: lambda-mu-hashref and lambda-mu-proberef. Our contribution to the Abadi-Plot kin program is to enrich the programming language with dynamic memory allocation, first class and higher order references and call/cc-style control. On the one hand, these enhancements allow us to directly model a larger class of system hardening principles. On the other hand, the class of opponents is also enhanced since our enriched language permits natural and direct encoding of attacks that alter the control flow of programs. Our main technical result is a fully abstract translation (up to probability) of lambda-mu-hashref into lambda-mu-proberef. Thus, in the presence of randomized layouts, the opponent gains no new power from being able to guess local references of the user program. Our numerical bounds are similar to those of Abadi and Plot kin, thus, the extra programming language features do not cause a concomitant increase in the resources required for protection via randomization.
Radha Jagadeesan, Corin Pitcher, Julian Rathke, James Riely
CSF4
2010 Generative Operational Semantics for Relaxed Memory Models
Radha Jagadeesan, Corin Pitcher, James Riely
ESOP3
2009 Towards a Theory of Accountability and Audit
Radha Jagadeesan, Alan Jeffrey, Corin Pitcher, James Riely
ESORICS4
2008 Tapido: Trust and Authorization Via Provenance and Integrity in Distributed Objects (Extended Abstract)
Andrew Cirillo, Radha Jagadeesan, Corin Pitcher, James Riely
ESOP4
2008 Lambda-RBAC: Programming with Role-Based Access Control
abstract
We study mechanisms that permit program components to express role constraints on clients, focusing on programmatic security mechanisms, which permit access controls to be expressed, in situ, as part of the code realizing basic functionality. In this setting, two questions immediately arise: (1) The user of a component faces the issue of safety: is a particular role sufficient to use the component? (2) The component designer faces the dual issue of protection: is a particular role demanded in all execution paths of the component? We provide a formal calculus and static analysis to answer both questions.
Radha Jagadeesan, Alan Jeffrey, Corin Pitcher, James Riely
Log. Methods Comput. Sci.4
2007 Do As I SaY! Programmatic Access Control with Explicit Identities
abstract
We address the programmatic realization of the access control model of security in distributed systems. Our aim is to bridge the gap between abstract/declarative policies and their concrete/operational implementations. We present a programming formalism (which extends the asynchronous pi-calculus with explicit principals) and a specification logic (which extends Datalog with primitives from authorization logic). We provide two kinds of static analysis methods to tie implementation to specification. Type checking determines that a program is a sound implementation of policy; i.e., that all granted accesses are safe in the face of arbitrary opponents. Model checking determines a degree of completeness; i.e., that accesses permitted by the policy are actually granted in the implementation.
Andrew Cirillo, Radha Jagadeesan, Corin Pitcher, James Riely
CSF4
2007 Specifications of a high-level conflict-free firewall policy language for multi-domain networks
abstract
Multiple firewalls typically cooperate to provide security properties for a network, despite the fact that these firewalls are often spatially distributed and configured in isolation. Without a global view of the network configuration, such a system is ripe for misconfiguration, causing conflicts and major security vulnerabilities.
Bin Zhang 0007, Ehab Al-Shaer, Radha Jagadeesan, James Riely, Corin Pitcher
SACMAT4
2006 Dynamic Policy Discovery with Remote Attestation
Corin Pitcher, James Riely
FoSSaCS2
2006 lambda-RBAC: Programming with Role-Based Access Control
Radha Jagadeesan, Alan Jeffrey, Corin Pitcher, James Riely
ICALP (2)4
2006 Typed parametric polymorphism for aspects
Radha Jagadeesan, Alan Jeffrey, James Riely
Sci. Comput. Program.3
2004 µABC: A Minimal Aspect Calculus
Glenn Bruns, Radha Jagadeesan, Alan Jeffrey, James Riely
CONCUR4
2003 A Calculus of Untyped Aspect-Oriented Programs
Radha Jagadeesan, Alan Jeffrey, James Riely
ECOOP3
2003 Trust and Partial Typing in Open Systems of Mobile Agents
James Riely, Matthew Hennessy
J. Autom. Reason.1
2002 Resource Access Control in Systems of Mobile Agents
Matthew Hennessy, James Riely
Inf. Comput.2
2002 Information flow vs. resource access in the asynchronous pi-calculus
abstract
We propose an extension of the asynchronous π-calculus in which a variety of security properties may be captured using types. These are an extension of the input/output types for the π-calculus in which I/O capabilities are assigned specific security levels. The main innovation is a uniform typing system that, by varying slightly the allowed set of types, captures different notions of security.We first define a typing system that ensures that processes running at security level σ cannot access resources with a security level higher than σ. The notion of access control guaranteed by this system is formalized in terms of a Type Safety Theorem.We then show that, by restricting the allowed types, our system prohibits implicit information flow from high-level to low-level processes. We prove that low-level behavior can not be influenced by changes to high-level behavior. This is formalized as a noninterference theorem with respect to may testing.
Matthew Hennessy, James Riely
ACM Trans. Program. Lang. Syst.2
2001 Distributed processes and location failures
James Riely, Matthew Hennessy
Theor. Comput. Sci.1
2000 Information Flow vs. Resource Access in the Asynchronous Pi-Calculus
Matthew Hennessy, James Riely
ICALP2
2000 Flattening Is an Improvement
James Riely, Jan F. Prins
SAS1
1999 Trust and Partial Typing in Open Systems of Mobile Agents
abstract
We present a partially-typed semantics for Dπ, a distributed π-calculus. The semantics is designed for mobile agents in open distributed systems in which some sites may harbor malicious intentions. Nonetheless, the semantics guarantees traditional type-safety properties at "good" locations by using a mixture of static and dynamic type-checking. We show how the semantics can be extended to allow trust between sites, improving performance and expressiveness without compromising type-safety.
James Riely, Matthew Hennessy
POPL1
1998 A Typed Language for Distributed Mobile Processes (Extended Abstract)
abstract
We describe a foundational language for specifying dynamically evolving networks of distributed processes, Dπ. The language is a distributed extension of the π-calculus which incorporates the notions of remote execution, migration, and site failure. Novel features of Dπ include 1. Communication channels are explicitly located: the use of a channel requires knowledge of both the channel and its location. 2. Names are endowed with permissions: the holder of a name may only use that name in the manner allowed by these permissions.A type system is proposed in which-the types control the allocation of permissions; in well-typed processes all names are used in accordance with the permissions allowed by the types. We prove Subject Reduction and Type Safety Theorems for the type system. In the final section we define a semantic theory based on barbed bisimulations and discuss its characterization in terms of a bisimulation relation over a relativized labelled transition system.
James Riely, Matthew Hennessy
POPL1
1997 Distributed Processes and Location Failures (Extended Abstract)
James Riely, Matthew Hennessy
ICALP1
1994 Testing-Based Abstractions for Value-Passing Systems
Rance Cleaveland, James Riely
CONCUR2