Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- research-articleJune 2023
Passport: Improving Automated Formal Verification Using Identifiers
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 45, Issue 2Article No.: 12, Pages 1–30https://doi.org/10.1145/3593374Formally verifying system properties is one of the most effective ways of improving system quality, but its high manual effort requirements often render it prohibitively expensive. Tools that automate formal verification by learning from proof corpora to ...
- research-articleMay 2023
A Derivative-based Parser Generator for Visibly Pushdown Grammars
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 45, Issue 2Article No.: 9, Pages 1–68https://doi.org/10.1145/3591472In this article, we present a derivative-based, functional recognizer and parser generator for visibly pushdown grammars. The generated parser accepts ambiguous grammars and produces a parse forest containing all valid parse trees for an input string in ...
- research-articleDecember 2022
A Type Discipline for Message Passing Parallel Programs
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 44, Issue 4Article No.: 26, Pages 1–55https://doi.org/10.1145/3552519We present ParTypes, a type discipline for parallel programs. The model we have in mind comprises a fixed number of processes running in parallel and communicating via collective operations or point-to-point synchronous message exchanges. A type describes ...
- research-articleJuly 2022
Types for Complexity of Parallel Computation in Pi-calculus
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 44, Issue 3Article No.: 15, Pages 1–50https://doi.org/10.1145/3495529Type systems as a technique to analyse or control programs have been extensively studied for functional programming languages. In particular, some systems allow one to extract from a typing derivation a complexity bound on the program. We explore how to ...
- research-articleApril 2022
What’s Decidable About Causally Consistent Shared Memory?
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 44, Issue 2Article No.: 8, Pages 1–55https://doi.org/10.1145/3505273While causal consistency is one of the most fundamental consistency models weaker than sequential consistency, the decidability of safety verification for (finite-state) concurrent programs running under causally consistent shared memories is still ...
-
- research-articleNovember 2021
An Extended Account of Trace-relating Compiler Correctness and Secure Compilation
- Carmine Abate,
- Roberto Blanco,
- Ştefan Ciobâcă,
- Adrien Durier,
- Deepak Garg,
- Cătălin Hriţcu,
- Marco Patrignani,
- Éric Tanter,
- Jérémy Thibault
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 43, Issue 4Article No.: 14, Pages 1–48https://doi.org/10.1145/3460860Compiler correctness, in its simplest form, is defined as the inclusion of the set of traces of the compiled program in the set of traces of the original program. This is equivalent to the preservation of all trace properties. Here, traces collect, for ...
- research-articleDecember 2019
Reasoning about a Machine with Local Capabilities: Provably Safe Stack and Return Pointer Management
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 42, Issue 1Article No.: 5, Pages 1–53https://doi.org/10.1145/3363519Capability machines provide security guarantees at machine level which makes them an interesting target for secure compilation schemes that provably enforce properties such as control-flow correctness and encapsulation of local state. We provide a ...
- research-articleNovember 2019
Modular Product Programs
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 42, Issue 1Article No.: 3, Pages 1–37https://doi.org/10.1145/3324783Many interesting program properties like determinism or information flow security are hyperproperties, that is, they relate multiple executions of the same program. Hyperproperties can be verified using relational logics, but these logics require ...
- research-articleDecember 2018
Rigorous Estimation of Floating-Point Round-Off Errors with Symbolic Taylor Expansions
- Alexey Solovyev,
- Marek S. Baranowski,
- Ian Briggs,
- Charles Jacobsen,
- Zvonimir Rakamarić,
- Ganesh Gopalakrishnan
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 41, Issue 1Article No.: 2, Pages 1–39https://doi.org/10.1145/3230733Rigorous estimation of maximum floating-point round-off errors is an important capability central to many formal verification tools. Unfortunately, available techniques for this task often provide very pessimistic overestimates, causing unnecessary ...
- research-articleDecember 2018
Dynamic Deadlock Verification for General Barrier Synchronisation
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 41, Issue 1Article No.: 1, Pages 1–38https://doi.org/10.1145/3229060We present Armus, a verification tool for dynamically detecting or avoiding barrier deadlocks. The core design of Armus is based on phasers, a generalisation of barriers that supports split-phase synchronisation, dynamic membership, and optional-waits. ...
- research-articleMarch 2017
Newtonian Program Analysis via Tensor Product
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 39, Issue 2Article No.: 9, Pages 1–72https://doi.org/10.1145/3024084Recently, Esparza et al. generalized Newton’s method—a numerical-analysis algorithm for finding roots of real-valued functions—to a method for finding fixed-points of systems of equations over semirings. Their method provides a new way to solve ...
- research-articleAugust 2016
Analyzing Runtime and Size Complexity of Integer Programs
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 38, Issue 4Article No.: 13, Pages 1–50https://doi.org/10.1145/2866575We present a modular approach to automatic complexity analysis of integer programs. Based on a novel alternation between finding symbolic time bounds for program parts and using these to infer bounds on the absolute values of program variables, we can ...
- research-articleAugust 2015
Affine Refinement Types for Secure Distributed Programming
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 37, Issue 4Article No.: 11, Pages 1–66https://doi.org/10.1145/2743018Recent research has shown that it is possible to leverage general-purpose theorem-proving techniques to develop powerful type systems for the verification of a wide range of security properties on application code. Although successful in many respects, ...
- research-articleApril 2015
Verification of a Cryptographic Primitive: SHA-256
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 37, Issue 2Article No.: 7, Pages 1–31https://doi.org/10.1145/2701415This article presents a full formal machine-checked verification of a C program: the OpenSSL implementation of SHA-256. This is an interactive proof of functional correctness in the Coq proof assistant, using the Verifiable C program logic. Verifiable C ...
- research-articleApril 2015
Secure Compilation to Protected Module Architectures
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 37, Issue 2Article No.: 6, Pages 1–50https://doi.org/10.1145/2699503A fully abstract compiler prevents security features of the source language from being bypassed by an attacker operating at the target language level. Unfortunately, developing fully abstract compilers is very complex, and it is even more so when the ...
- research-articleNovember 2014
Practical Fine-Grained Information Flow Control Using Laminar
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 37, Issue 1Article No.: 4, Pages 1–51https://doi.org/10.1145/2638548Decentralized Information Flow Control (DIFC) is a promising model for writing programs with powerful, end-to-end security guarantees. Current DIFC systems that run on commodity hardware can be broadly categorized into two types: language-level and ...
- research-articleOctober 2014
A Widening Approach to Multithreaded Program Verification
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 36, Issue 4Article No.: 14, Pages 1–29https://doi.org/10.1145/2629608Pthread-style multithreaded programs feature rich thread communication mechanisms, such as shared variables, signals, and broadcasts. In this article, we consider the automated verification of such programs where an unknown number of threads execute a ...
- research-articleSeptember 2014
Pattern-Based Verification for Multithreaded Programs
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 36, Issue 3Article No.: 9, Pages 1–29https://doi.org/10.1145/2629644Pattern-based verification checks the correctness of program executions that follow a given pattern, a regular expression over the alphabet of program transitions of the form w1* … wn*. For multithreaded programs, the alphabet of the pattern is given by ...
- research-articleJuly 2014
Atomicity Refinement for Verified Compilation
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 36, Issue 2Article No.: 6, Pages 1–30https://doi.org/10.1145/2601339We consider the verified compilation of high-level managed languages like Java or C# whose intermediate representations provide support for shared-memory synchronization and automatic memory management. Our development is framed in the context of the ...
- research-articleNovember 2013
Analysis of Recursively Parallel Programs
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 35, Issue 3Article No.: 10, Pages 1–49https://doi.org/10.1145/2518188We propose a general formal model of isolated hierarchical parallel computations, and identify several fragments to match the concurrency constructs present in real-world programming languages such as Cilk and X10. By associating fundamental formal ...