Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- abstractJune 2015
Verification of a cryptographic primitive: SHA-256 (abstract)
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Page 153https://doi.org/10.1145/2737924.2774972A 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 is a separation ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Diagnosing type errors with class
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 12–21https://doi.org/10.1145/2737924.2738009Type inference engines often give terrible error messages, and the more sophisticated the type system the worse the problem. We show that even with the highly expressive type system implemented by the Glasgow Haskell Compiler (GHC)--including type ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Lightweight, flexible object-oriented generics
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 436–445https://doi.org/10.1145/2737924.2738008The support for generic programming in modern object-oriented programming languages is awkward and lacks desirable expressive power. We introduce an expressive genericity mechanism that adds expressive power and strengthens static checking, while ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Relaxing safely: verified on-the-fly garbage collection for x86-TSO
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 99–109https://doi.org/10.1145/2737924.2738006We report on a machine-checked verification of safety for a state-of-the-art, on-the-fly, concurrent, mark-sweep garbage collector that is designed for multi-core architectures with weak memory consistency. The proof explicitly incorporates the relaxed ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
A formal C memory model supporting integer-pointer casts
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 326–335https://doi.org/10.1145/2737924.2738005The ISO C standard does not specify the semantics of many valid programs that use non-portable idioms such as integer-pointer casts. Recent efforts at formal definitions and verified implementation of the C language inherit this feature. By adopting ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 -
- research-articleJune 2015
Making numerical program analysis fast
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 303–313https://doi.org/10.1145/2737924.2738000Numerical abstract domains are a fundamental component in modern static program analysis and are used in a wide range of scenarios (e.g. computing array bounds, disjointness, etc). However, analysis with these domains can be very expensive, deeply ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Synthesizing racy tests
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 175–185https://doi.org/10.1145/2737924.2737998Subtle concurrency errors in multithreaded libraries that arise because of incorrect or inadequate synchronization are often difficult to pinpoint precisely using only static techniques. On the other hand, the effectiveness of dynamic race detectors is ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Asynchronous programming, analysis and testing with state machines
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 154–164https://doi.org/10.1145/2737924.2737996Programming efficient asynchronous systems is challenging because it can often be hard to express the design declaratively, or to defend against data races and interleaving-dependent assertion violations. Previous work has only addressed these ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
The Push/Pull model of transactions
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 186–195https://doi.org/10.1145/2737924.2737995We present a general theory of serializability, unifying a wide range of transactional algorithms, including some that are yet to come. To this end, we provide a compact semantics in which concurrent transactions PUSH their effects into the shared view ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Termination and non-termination specification inference
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 489–498https://doi.org/10.1145/2737924.2737993Techniques for proving termination and non-termination of imperative programs are usually considered as orthogonal mechanisms. In this paper, we propose a novel mechanism that analyzes and proves both program termination and non-termination at the same ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Verifying read-copy-update in a logic for weak memory
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 110–120https://doi.org/10.1145/2737924.2737992Read-Copy-Update (RCU) is a technique for letting multiple readers safely access a data structure while a writer concurrently modifies it. It is used heavily in the Linux kernel in situations where fast reads are important and writes are infrequent. ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
DAG inlining: a decision procedure for reachability-modulo-theories in hierarchical programs
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 280–290https://doi.org/10.1145/2737924.2737987A hierarchical program is one with multiple procedures but no loops or recursion. This paper studies the problem of deciding reachability queries in hierarchical programs where individual statements can be encoded in a decidable logic (say in SMT). ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Automatic induction proofs of data-structures in imperative programs
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 457–466https://doi.org/10.1145/2737924.2737984We consider the problem of automated reasoning about dynamically manipulated data structures. Essential properties are encoded as predicates whose definitions are formalized via user-defined recursive rules. Traditionally, proving relationships between ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Monitoring refinement via symbolic reasoning
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 260–269https://doi.org/10.1145/2737924.2737983Efficient implementations of concurrent objects such as semaphores, locks, and atomic collections are essential to modern computing. Programming such objects is error prone: in minimizing the synchronization overhead between concurrent object ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Declarative programming over eventually consistent data stores
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 413–424https://doi.org/10.1145/2737924.2737981User-facing online services utilize geo-distributed data stores to minimize latency and tolerate partial failures, with the intention of providing a fast, always-on experience. However, geo-distribution does not come for free; application developers ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Efficient synthesis of network updates
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 196–207https://doi.org/10.1145/2737924.2737980Software-defined networking (SDN) is revolutionizing the networking industry, but current SDN programming platforms do not provide automated mechanisms for updating global configurations on the fly. Implementing updates by hand is challenging for SDN ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Synthesizing data structure transformations from input-output examples
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 229–239https://doi.org/10.1145/2737924.2737977We present a method for example-guided synthesis of functional programs over recursive data structures. Given a set of input-output examples, our method synthesizes a program in a functional language with higher-order combinators like map and fold. The ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Synthesis of ranking functions using extremal counterexamples
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 608–618https://doi.org/10.1145/2737924.2737976We present a complete method for synthesizing lexicographic linear ranking functions (and thus proving termination), supported by inductive invariants, in the case where the transition relation of the program includes disjunctions and existentials (...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Stateless model checking concurrent programs with maximal causality reduction
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 165–174https://doi.org/10.1145/2737924.2737975We present maximal causality reduction (MCR), a new technique for stateless model checking. MCR systematically explores the state-space of concurrent programs with a provably minimal number of executions. Each execution corresponds to a distinct ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015 - research-articleJune 2015
Tree dependence analysis
PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2015, Pages 314–325https://doi.org/10.1145/2737924.2737972We develop a new framework for analyzing recursive methods that perform traversals over trees, called tree dependence analysis. This analysis translates dependence analysis techniques for regular programs to the irregular space, identifying the ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 6June 2015