Results 1 
6 of
6
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 61 (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 23 (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 Failuredriven Explanation Based Learning in Constraint Satisfaction and Planning
, 1998
"... The ideas of intelligent backtracking (IB) and explanationbased 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 hitherto been i ..."
Abstract

Cited by 11 (6 self)
 Add to MetaCart
The ideas of intelligent backtracking (IB) and explanationbased 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 hitherto been incomparable. In this paper, I formalize and unify these ideas under the taskindependent 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 analysiswhich 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 crossfertilization of ideas among CSP, planning and EBL communities.
DependenceBased 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 compiletime. Such estimates play a crucial role in the (automatic) improvement, modification, and reuse of existing software. The first part of this thesis develops...
A multilanguage source code retrieval system using structuralsemantic fingerprints, Int
 Journal of Comp. Sys. Sci. and Eng
, 2007
"... Abstract—Source code retrieval is of immense importance in the software engineering field. The complex tasks of retrieving and extracting information from source code documents is vital in the development cycle of the large software systems. The two main subtasks which result from these activities a ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Abstract—Source code retrieval is of immense importance in the software engineering field. The complex tasks of retrieving and extracting information from source code documents is vital in the development cycle of the large software systems. The two main subtasks which result from these activities are code duplication prevention and plagiarism detection. In this paper, we propose a multilanguage source code retrieval system based on twolevel fingerprint representation, respectively the structural and the semantic information within a source code. A sequence alignment technique is applied on these fingerprints in order to quantify the similarity between source code portions. The specific purpose of the system is to detect plagiarism and duplicated code between programs written in different programming languages belonging to the same class, such as C, C++, Java and CSharp. These four languages are supported by the actual version of the system which is designed such that it may be easily adapted for any programming language. Keywords—Source code retrieval, plagiarism detection, clone detection, sequence alignment. I.
Compositional Experimental Analysis of Cellular Automata: Attraction Properties and Logic Disjunction
, 1996
"... In this paper, we analyze attraction properties of elementary (i.e. Boolean, onedimensional, biinfinite) cellular automata (for short, CA). To overcome the wellknown 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, onedimensional, biinfinite) cellular automata (for short, CA). To overcome the wellknown 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 CAbased 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 spatiotemporal ...