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-articleAugust 2010
Finite differencing of logical formulas for static analysis
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 32, Issue 6Article No.: 24, Pages 1–55https://doi.org/10.1145/1749608.1749613This article concerns mechanisms for maintaining the value of an instrumentation relation (also known as a derived relation or view), defined via a logical formula over core relations, in response to changes in the values of the core relations. It ...
- research-articleFebruary 2010
A relational approach to interprocedural shape analysis
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 32, Issue 2Article No.: 5, Pages 1–52https://doi.org/10.1145/1667048.1667050This article addresses the verification of properties of imperative programs with recursive procedure calls, heap-allocated storage, and destructive updating of pointer-valued fields, that is, interprocedural shape analysis. The article makes three ...
- research-articleAugust 2009
From datalog rules to efficient programs with time and space guarantees
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 31, Issue 6Article No.: 21, Pages 1–38https://doi.org/10.1145/1552309.1552311This article describes a method for transforming any given set of Datalog rules into an efficient specialized implementation with guaranteed worst-case time and space complexities, and for computing the complexities from the rules. The running time is ...
- research-articleOctober 2008
Perfect hashing as an almost perfect subtype test
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 30, Issue 6Article No.: 33, Pages 1–56https://doi.org/10.1145/1391956.1391960Subtype tests are an important issue in the implementation of object-oriented programming languages. Many techniques have been proposed, but none of them perfectly fulfills the five requirements that we have identified: constant-time, linear-space, ...
- research-articleAugust 2008
Relations as an abstraction for BDD-based program analysis
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 30, Issue 4Article No.: 19, Pages 1–63https://doi.org/10.1145/1377492.1377494In this article we present Jedd, a language extension to Java that supports a convenient way of programming with Binary Decision Diagrams (BDDs). The Jedd language abstracts BDDs as database-style relations and operations on relations, and provides ...
-
- research-articleMay 2008
Verifying safety properties of concurrent heap-manipulating programs
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 32, Issue 5Article No.: 18, Pages 1–50https://doi.org/10.1145/1745312.1745315We provide a parametric framework for verifying safety properties of concurrent heap-manipulating programs. The framework combines thread-scheduling information with information about the shape of the heap. This leads to verification algorithms that are ...
- articleJanuary 2005
Pretty printing with lazy dequeues
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 27, Issue 1Pages 163–184https://doi.org/10.1145/1053468.1053473There are several purely functional libraries for converting tree structured data into indented text, but they all make use of some backtracking. Over twenty years ago, Oppen published a more efficient imperative implementation of a pretty printer. This ...
- articleMay 2002
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 24, Issue 3Pages 217–298https://doi.org/10.1145/514188.514190Shape analysis concerns the problem of determining "shape invariants" for programs that perform destructive updating on dynamically allocated storage. This article presents a parametric framework for shape analysis that can be instantiated in different ...
- articleJuly 2000
Program transformation and runtime support for threaded MPI execution on shared-memory machines
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 22, Issue 4Pages 673–700https://doi.org/10.1145/363911.363920Parallel programs written in MPI have been widely used for developing high-performance applications on various platforms. Because of a restriction of the MPI computation model, conventional MPI implementations on shared-memory machines map each MPI node ...
- articleJanuary 1998
Fast algorithms for compressed multimethod dispatch table generation
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 20, Issue 1Pages 116–165https://doi.org/10.1145/271510.271521The efficiency of dynamic dispatch is a major impediment to the adoption of multimethods in object-oriented languages. In this article, we propose a simple multimethod dispatch scheme based on compressed dispatch tables. This scheme is applicable to any ...
- articleJanuary 1998
Solving shape-analysis problems in languages with destructive updating
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 20, Issue 1Pages 1–50https://doi.org/10.1145/271510.271517This article concerns the static analysis of programs that perform destructive updating on heap-allocated storage. We give an algorithm that uses finite shape graphs to approximate conservatively the possible “shapes” that heap-allocated structures in a ...
- articleSeptember 1997
Disjunctive program analysis for algebraic data types
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 19, Issue 5Pages 751–803https://doi.org/10.1145/265943.265966We describe how binding-time, data-flow, and strictness analyses for languages with higher-order functions and algebraic data types can be obtained by instantiating a generic program logic and axiomatization of the properties analyzed for. A distinctive ...
- articleMay 1994
A linear-time scheme for version reconstruction
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 16, Issue 3Pages 775–797https://doi.org/10.1145/177492.177705An efficient scheme to store and reconstruct versions of sequential files is presented. The reconstruction scheme involves building a data structure representing a complete version, and then successively modifying this data structure by applying a ...
- articleMarch 1993
References to remote mobile objects in Thor
ACM Letters on Programming Languages and Systems (LOPLAS), Volume 2, Issue 1-4Pages 115–126https://doi.org/10.1145/176454.176500Thor is a distributed object-oriented database where objects are stored persistently at highly available servers called object repositories, or ORs. In a large Thor system, performance tuning and system reconfiguration dictate that objects must be able ...
- articleMarch 1993
An efficient representation for sparse sets
ACM Letters on Programming Languages and Systems (LOPLAS), Volume 2, Issue 1-4Pages 59–69https://doi.org/10.1145/176454.176484Sets are a fundamental abstraction widely used in programming. Many representations are possible, each offering different advantages. We describe a representation that supports constant-time implementations of clear-set, add-member, and delete-member. ...
- articleSeptember 1992
Abstract description of pointer data structures: an approach for improving the analysis and optimization of imperative programs
ACM Letters on Programming Languages and Systems (LOPLAS), Volume 1, Issue 3Pages 243–260https://doi.org/10.1145/151640.151644Even though impressive progress has been made in the area of optimizing and parallelizing array-based programs, the application of similar techniques to programs using pointer data structures has remained difficult. Unlike arrays which have a small ...
- articleApril 1992
An object-based programming model for shared data
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 14, Issue 2Pages 201–264https://doi.org/10.1145/128861.128866The classical object model supports private data within objects and clean interfaces between objects, and by definition does not permit sharing of data among arbitrary objects. This is a problem for real-world applications, such as advanced financial ...
- articleOctober 1989
I-structures: data structures for parallel computing
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 11, Issue 4Pages 598–632https://doi.org/10.1145/69558.69562It is difficult to achieve elegance, efficiency, and parallelism simultaneously in functional programs that manipulate large data structures. We demonstrate this through careful analysis of program examples using three common functional data-structuring ...
- articleOctober 1988
Analysis of functional programs to detect run-time garbage cells
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 10, Issue 4Pages 555–578https://doi.org/10.1145/48022.48025We propose a method for detecting the generation of garbage cells by analyzing a source text written in a functional programming language which uses ordinary linked lists to implement list-type values. For a subexpression such as F(G( . . . )) in a ...