Results 11 
16 of
16
Efficient data flow analysis using DJgraphs: Elimination methods revisited
, 1995
"... In this paper we present a new approach to elimination based data flow analysis that uses a program representation called the DJ Graph. The skeleton of the DJ graph of a program is the dominator tree of its flowgraph (whose edges are called D edges in this paper), and the tree skeleton is augmented ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
In this paper we present a new approach to elimination based data flow analysis that uses a program representation called the DJ Graph. The skeleton of the DJ graph of a program is the dominator tree of its flowgraph (whose edges are called D edges in this paper), and the tree skeleton is augmented with join edges (called J edges in this paper). Unlike the previous elimination methods, which first reduce a flowgraph to a single node, our approach only eliminate J edges from the DJ graph in a bottomup fashion during the reduction process, while maintainting the dominator tree structure (which may be compressed). We propose two methods for eliminating variables: (1) eager elimination method, and (2) delayed elimination method. With eager elimination, we first perform variable elimination on the DJgraph in a bottomup manner. Once we determine the solution for the root node, we propagate this information in a topdown fashion on the dominator tree and determine the corresponding solutio...
DataStructural Bootstrapping And Catenable Deques
, 1993
"... The list is a fundamental data structure. It stores a linearly ordered collection of elements and allows access only to the front and rear elements of the list. Catenation can be applied to lists, unifying the rear of one list with the front of another. Absent other requirements, the basic list oper ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
The list is a fundamental data structure. It stores a linearly ordered collection of elements and allows access only to the front and rear elements of the list. Catenation can be applied to lists, unifying the rear of one list with the front of another. Absent other requirements, the basic list operations, including catenation, have straightforward implementations. If the list has certain secondary properties, however, the operations, particularly catenation, become more difficult. Nondestructive lists
and the Deque Conjecture
"... We introduce a new technique to bound the asymptotic performance of splay trees. The basic idea is to transcribe, in an indirect fashion, the rotations performed by the splay tree as a DavenportSchinzel sequence, none of whose subsequences are isomorphic to a fixed forbidden subsequence. We direct ..."
Abstract
 Add to MetaCart
We introduce a new technique to bound the asymptotic performance of splay trees. The basic idea is to transcribe, in an indirect fashion, the rotations performed by the splay tree as a DavenportSchinzel sequence, none of whose subsequences are isomorphic to a fixed forbidden subsequence. We direct this technique towards Tarjan’s deque conjecture and prove that n deque operations take only O(nα ∗ (n)) time, where α ∗ (n) is the minimum number of applications of the inverseAckermann function mapping n to a constant. We are optimistic that this approach could be directed towards other open conjectures on splay trees such as the traversal and split conjectures. 1
Simple Confluently Persistent Catenable Lists.
, 1999
"... Abstract We consider the problem of maintaining persistent lists subject to concatenation and to insertions and deletions at both ends. Updates to a persistent data structure are nondestructive each operation produces a new list incorporating the change, while keeping intact the list or lists to wh ..."
Abstract
 Add to MetaCart
Abstract We consider the problem of maintaining persistent lists subject to concatenation and to insertions and deletions at both ends. Updates to a persistent data structure are nondestructive each operation produces a new list incorporating the change, while keeping intact the list or lists to which it applies. Although general techniques exist for making data structures persistent, these techniques fail for structures that are subject to operations, such as catenation, that combine two or more versions. In this paper we develop a simple implementation of persistent doubleended queues with catenation that supports all deque operations in constant amortized time. Our implementation is functional if we allow memoization.
Sequence Implementations in Haskell
, 1997
"... An abstract data type sequence is defined with the operations empty, isEmpty, cons, snoc, popFront, popRear, lenghtSeq, toList, and toSeq. A sequence with the operations lookupSeq and updateSeq is an Indexable Sequence. A sequence with catenation is called a Catenable Sequence. Some functional imp ..."
Abstract
 Add to MetaCart
An abstract data type sequence is defined with the operations empty, isEmpty, cons, snoc, popFront, popRear, lenghtSeq, toList, and toSeq. A sequence with the operations lookupSeq and updateSeq is an Indexable Sequence. A sequence with catenation is called a Catenable Sequence. Some functional implementations of these abstract data types taken from the literature are described. These implementations are classified as stacks, deques, flexible arrays, and catenable lists, if they can be used as efficient implementations for each of these traditional data types. Some of them are extended to provide the operations defined for sequences. Some comments and directions for further research are also included. The implementations are made in the functional programming language Haskell as instances of one or more of the classes Sequence, IndSeq, and CatSeq, with the operations defined for each type. These instances are classified by the subset of these operations that each instance supports eff...
HewlettPackard Company and
"... In this article, we present a new framework for eliminationbased exhaustive and incremental data ow analysis using the DJ graph representation of a program. Unlike previous approaches to eliminationbased incremental data
ow analysis, our approach can handle arbitrary structural and nonstructural ..."
Abstract
 Add to MetaCart
In this article, we present a new framework for eliminationbased exhaustive and incremental data ow analysis using the DJ graph representation of a program. Unlike previous approaches to eliminationbased incremental data
ow analysis, our approach can handle arbitrary structural and nonstructural changes to program
owgraphs, including irreducibility. We show how our approach is related to dominance frontiers, and we exploit this relationship to establish the complexity of our exhaustive analysis and to aid the design of our incremental analysis.