Results 1 -
7 of
7
Type Analysis and Data Structure Selection
, 1991
"... Schwartz et al. described an optimization to implement built-in abstract types such as sets and maps with efficient data structures. Their transformation rests on the discovery of finite universal sets, called bases, to be used for avoiding data replication and for creating aggregate data structures ..."
Abstract
-
Cited by 15 (0 self)
- Add to MetaCart
Schwartz et al. described an optimization to implement built-in abstract types such as sets and maps with efficient data structures. Their transformation rests on the discovery of finite universal sets, called bases, to be used for avoiding data replication and for creating aggregate data structures that implement associative access by simpler cursor or pointer access. The SETL implementation used global analysis similar to classical dataflow for typings and for set inclusion and membership relationships to determine bases. However, the optimized data structures selected by this optmization did not include a primitive linked list or array, and all optimized data structures retained some degree of hashing. Hence, this heuristic approach did not guarantee a uniform improvement in performance over the use of default representations. The analysis was complicated by SETL's imperative style, weak typing, and low level control structures. The implemented optimizer was large (about 20,000 line...
Universal regular path queries
- Higher-Order and Symbolic Computation
, 2003
"... Given are a directed edge-labelled graph G with a distinguished node n0, and a regular expression P which may contain variables. We wish to compute all substitutions φ (of symbols for variables), together with all nodes n such that all paths n0 → n are in φ(P). We derive an algorithm for this proble ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
Given are a directed edge-labelled graph G with a distinguished node n0, and a regular expression P which may contain variables. We wish to compute all substitutions φ (of symbols for variables), together with all nodes n such that all paths n0 → n are in φ(P). We derive an algorithm for this problem using relational algebra, and show how it may be implemented in Prolog. The motivation for the problem derives from a declarative framework for specifying compiler optimisations. 1 Bob Paige and IFIP WG 2.1 Bob Paige was a long-standing member of IFIP Working Group 2.1 on Algorithmic Languages and Calculi. In recent years, the main aim of this group has been to investigate the derivation of algorithms from specifications by program transformation. Already in the mid-eighties, Bob was way ahead of the pack: instead of applying transformational techniques to well-worn examples, he was applying his theories of program transformation to new problems, and discovering new algorithms [16, 48, 52]. The secret of his success lay partly in his insistence on the study of general algorithm design strategies (in particular
High Level Reading and Data Structure Compilation
- In Conference Record of the 24th Annual ACM Symposium on Principles of Programming Languages
, 1997
"... In [Paige89], it was shown how to simulate a set machine in real-time on a RAM that provides cursor or even only pointer access to data. The underlying assumption was that the establishment of efficient data structures would be provided by some `client' program. In the current paper, we fill in the ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
In [Paige89], it was shown how to simulate a set machine in real-time on a RAM that provides cursor or even only pointer access to data. The underlying assumption was that the establishment of efficient data structures would be provided by some `client' program. In the current paper, we fill in the gap by presenting a linear-time high level reading method that translates external input in string form into data structures that facilitate such real-time simulation. The algorithm builds the data structures for a much richer type system than what appeared in [Paige94], and is powerful enough to support our reading algorithm itself in an efficient way. Consequently, it equips a high level set-theoretic language with I/O, without the loss of computational transparency. This work alleviates the burden of creating low-level data structures manually, and builds the internal pointerbased inputs required by most pointer algorithms [BenAmram95 ] from the external string representation. 1 Introdu...
A Parallel Complexity Model for Functional Languages
- IN: PROC. ACM CONF. ON FUNCTIONAL PROGRAMMING LANGUAGES AND COMPUTER ARCHITECTURE
, 1994
"... A complexity model based on the -calculus with an appropriate operational semantics in presented and related to various parallel machine models, including the PRAM and hypercube models. The model is used to study parallel algorithms in the context of "sequential" functional languages, and to relate ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
A complexity model based on the -calculus with an appropriate operational semantics in presented and related to various parallel machine models, including the PRAM and hypercube models. The model is used to study parallel algorithms in the context of "sequential" functional languages, and to relate these results to algorithms designed directly for parallel machine models. For example, the paper shows that equally good upper bounds can be achieved for merging two sorted sequences in the pure -calculus with some arithmetic constants as in the EREW PRAM, when they are both mapped onto a more realistic machine such as a hypercube or butterfly network. In particular for n keys and p processors, they both result in an O(n=p + log 2 p) time algorithm. These results argue that it is possible to get good parallelism in functional languages without adding explicitly parallel constructs. In fact, the lack of random access seems to be a bigger problem than the lack of parallelism. This research...
SETL for Internet Data Processing
, 2000
"... hereby granted, provided that this notice and the reference ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
hereby granted, provided that this notice and the reference
Prop - Language Reference Manual
, 1997
"... This reference manual provides an introduction to Prop, release 2.3.4. Prop is a multiparadigm extension of C++, and is designed for building high performance compiler and language transformation systems, using pattern matching and rewriting. This guide describes the syntax and semantics of the Pr ..."
Abstract
- Add to MetaCart
This reference manual provides an introduction to Prop, release 2.3.4. Prop is a multiparadigm extension of C++, and is designed for building high performance compiler and language transformation systems, using pattern matching and rewriting. This guide describes the syntax and semantics of the Prop language and describes how to develop programs using the Prop to C++ translator. The author will neither assume responsibility for any damages caused by the use of this product, nor accept warranty or update claims. This product is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This product is in the public domain, and may be freely distributed. Prop is a research prototype. The information contained in this document is subject to change without notice. 1 Contents 1 Introduction 4 1.1 Availability : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ...

