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 2010
Z-rays: divide arrays and conquer speed and flexibility
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 471–482https://doi.org/10.1145/1806596.1806649Arrays are the ubiquitous organization for indexed data. Throughout programming language evolution, implementations have laid out arrays contiguously in memory. This layout is problematic in space and time. It causes heap fragmentation, garbage ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
Mixing type checking and symbolic execution
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 436–447https://doi.org/10.1145/1806596.1806645Static analysis designers must carefully balance precision and efficiency. In our experience, many static analysis tools are built around an elegant, core algorithm, but that algorithm is then extensively tweaked to add just enough precision for the ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
MemSAT: checking axiomatic specifications of memory models
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 341–350https://doi.org/10.1145/1806596.1806635Memory models are hard to reason about due to their complexity, which stems from the need to strike a balance between ease-of-programming and allowing compiler and hardware optimizations. In this paper, we present an automated tool, MemSAT, that helps ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
Line-up: a complete and automatic linearizability checker
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 330–340https://doi.org/10.1145/1806596.1806634Modular development of concurrent applications requires thread-safe components that behave correctly when called concurrently by multiple client threads. This paper focuses on linearizability, a specific formalization of thread safety, where all ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
Complete functional synthesis
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 316–329https://doi.org/10.1145/1806596.1806632Synthesis of program fragments from specifications can make programs easier to write and easier to reason about. To integrate synthesis into programming languages, synthesis algorithms should behave in a predictable way - they should succeed for a well-...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
The reachability-bound problem
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 292–304https://doi.org/10.1145/1806596.1806630We define the reachability-bound problem to be the problem of finding a symbolic worst-case bound on the number of times a given control location inside a procedure is visited in terms of the inputs to that procedure. This has applications in bounding ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
Adversarial memory for detecting destructive races
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 244–254https://doi.org/10.1145/1806596.1806625Multithreaded programs are notoriously prone to race conditions, a problem exacerbated by the widespread adoption of multi-core processors with complex memory models and cache coherence protocols. Much prior work has focused on static and dynamic ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
Finding low-utility data structures
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 174–186https://doi.org/10.1145/1806596.1806617Many opportunities for easy, big-win, program optimizations are missed by compilers. This is especially true in highly layered Java applications. Often at the heart of these missed optimization opportunities lie computations that, with great expense, ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
Detecting inefficiently-used containers to avoid bloat
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 160–173https://doi.org/10.1145/1806596.1806616Runtime bloat degrades significantly the performance and scalability of software systems. An important source of bloat is the inefficient use of containers. It is expensive to create inefficiently-used containers and to invoke their associated methods, ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
Schism: fragmentation-tolerant real-time garbage collection
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 146–159https://doi.org/10.1145/1806596.1806615Managed languages such as Java and C# are being considered for use in hard real-time systems. A hurdle to their widespread adoption is the lack of garbage collection algorithms that offer predictable space-and-time performance in the face of ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
Parameterized verification of transactional memories
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 134–145https://doi.org/10.1145/1806596.1806613We describe an automatic verification method to check whether transactional memories ensure strict serializability a key property assumed of the transactional interface. Our main contribution is a technique for effectively verifying parameterized ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
Bringing extensibility to verified compilers
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 111–121https://doi.org/10.1145/1806596.1806611Verified compilers, such as Leroy's CompCert, are accompanied by a fully checked correctness proof. Both the compiler and proof are often constructed with an interactive proof assistant. This technique provides a strong, end-to-end correctness guarantee ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
Safe to the last instruction: automated verification of a type-safe operating system
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 99–110https://doi.org/10.1145/1806596.1806610Typed assembly language (TAL) and Hoare logic can verify the absence of many kinds of errors in low-level code. We use TAL and Hoare logic to achieve highly automated, static verification of the safety of a new operating system called Verve. Our ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
Jinn: synthesizing dynamic bug detectors for foreign language interfaces
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 36–49https://doi.org/10.1145/1806596.1806601Programming language specifications mandate static and dynamic analyses to preclude syntactic and semantic errors. Although individual languages are usually well-specified, composing languages is not, and this poor specification is a source of many ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010 - research-articleJune 2010
Breadcrumbs: efficient context sensitivity for dynamic bug detection analyses
PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2010, Pages 13–24https://doi.org/10.1145/1806596.1806599Calling context--the set of active methods on the stack--is critical for understanding the dynamic behavior of large programs. Dynamic program analysis tools, however, are almost exclusively context insensitive because of the prohibitive cost of ...
Also Published in:
ACM SIGPLAN Notices: Volume 45 Issue 6, June 2010