Results 1 -
5 of
5
Escape Analysis: Correctness Proof, Implementation and Experimental Results
- In Conference Record of the 25th Annual ACM Symposium on Principles of Programming Languages
, 1998
"... We describe an escape analysis [32, 14], used to determine whether the lifetime of data exceeds its static scope. We give a new correctness proof starting directly from a semantics. Contrary to previous proofs, it takes into account all the features of functional languages, including imperative fea ..."
Abstract
-
Cited by 59 (2 self)
- Add to MetaCart
We describe an escape analysis [32, 14], used to determine whether the lifetime of data exceeds its static scope. We give a new correctness proof starting directly from a semantics. Contrary to previous proofs, it takes into account all the features of functional languages, including imperative features and polymorphism. The analysis has been designed so that it can be implemented under the small complexity bound of O(n log 2 n) where n is the size of the analyzed program. We have included it in the Caml Special Light compiler (an implementation of ML), and applied it to very large programs. We plan to apply these techniques to the Java programming language. Escape analysis has been applied to stack allocation. We improve the optimization technique by determining minimal lifetime for stack allocated data, and using inlining. We manage to stack allocate 25% of data in the theorem prover Coq. We analyzed the effect of this optimization, and noticed that its main effect is to improve ...
Domain theory for concurrency
, 2003
"... Concurrent computation can be given an abstract mathematical treatment very similar to that provided for sequential computation by domain theory and denotational semantics of Scott and Strachey. ..."
Abstract
-
Cited by 20 (6 self)
- Add to MetaCart
Concurrent computation can be given an abstract mathematical treatment very similar to that provided for sequential computation by domain theory and denotational semantics of Scott and Strachey.
On the Relations between Intelligent Backtracking and Failure-driven Explanation Based Learning in Constraint Satisfaction and Planning
, 1998
"... The ideas of intelligent backtracking (IB) and explanation-based learning (EBL) have developed independently in the constraint satisfaction, planning, machine learning and problem solving communities. The variety of approaches developed for IB and EBL in the various communities have hither-to been i ..."
Abstract
-
Cited by 11 (6 self)
- Add to MetaCart
The ideas of intelligent backtracking (IB) and explanation-based learning (EBL) have developed independently in the constraint satisfaction, planning, machine learning and problem solving communities. The variety of approaches developed for IB and EBL in the various communities have hither-to been incomparable. In this paper, I formalize and unify these ideas under the task-independent framework of refinement search, which can model the search strategies used in both planning and constraint satisfaction problems (CSPs). I show that both IB and EBL depend upon the common theory of explanation analysis--which involves explaining search failures, and regressing them to higher levels of the search tree. My comprehensive analysis shows that most of the differences between the CSP and planning approaches to EBL and IB revolve around different solutions to: (a) how the failure explanations are computed; (b) how they are contextualized (contextualization involves deciding whether or not to keep the flaw description and the description of the violated problem constraints); and (c) how the storage of explanations is managed. The differences themselves can be understood in terms of the differences between planning and CSP problems as instantiations of refinement search. This unified understanding is expected to support a greater cross-fertilization of ideas among CSP, planning and EBL communities.
Dependence-Based Representations for Programs with Reference Variables
, 1991
"... Three features common to modem programming languages are popular because they simplify the development of efficient programs. The first, the assignment statement, allows the components of a data structure to be redefined as a computation progresses. The second, dynamic allocation, allows memory for ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Three features common to modem programming languages are popular because they simplify the development of efficient programs. The first, the assignment statement, allows the components of a data structure to be redefined as a computation progresses. The second, dynamic allocation, allows memory for data structures to be acquixed, destroyed, and reused at need. The third, the reference (i.e., pointer) variable, allows multiple data structures to share a common substructure. These three features, unfortunately, make it difficult to estimate program behavior at compile-time. Such estimates play a crucial role in the (automatic) improvement, modification, and reuse of existing software. The first part of this thesis develops...
Compositional Experimental Analysis of Cellular Automata: Attraction Properties and Logic Disjunction
, 1996
"... In this paper, we analyze attraction properties of elementary (i.e. Boolean, one-dimensional, bi-infinite) cellular automata (for short, CA). To overcome the well-known undecidability constraints met by these systems, in addition to the classical extensive use of computer simulations, we introduc ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
In this paper, we analyze attraction properties of elementary (i.e. Boolean, one-dimensional, bi-infinite) cellular automata (for short, CA). To overcome the well-known undecidability constraints met by these systems, in addition to the classical extensive use of computer simulations, we introduce composition: we first characterize basis CA, which we then use as building blocks to understand a whole family of CA-based systems obtained by composing them using logic disjunction. The compositional approach allows deep structured investigations, and it permits to define a new notion of dynamical complexity. 1 Experimental analysis of cellular automata Cellular automata. Cellular automata (for short, CA) are massively parallel systems obtained by composition of myriads of simple agents interacting locally, i.e. with their closest neighbors. In spite of their simplicity, the dynamics of CA is potentially very rich, and ranges from attracting stable configurations to spatio-temporal ...

