Results 1  10
of
46
Skip Lists: A Probabilistic Alternative to Balanced Trees
, 1990
"... Skip lists are data structures thla t use probabilistic balancing rather than strictly enforced balancing. As a result, the algorithms for insertion and deletion in skip lists are much simpler and significantly faster than equivalent algorithms for balanced trees. ..."
Abstract

Cited by 398 (1 self)
 Add to MetaCart
Skip lists are data structures thla t use probabilistic balancing rather than strictly enforced balancing. As a result, the algorithms for insertion and deletion in skip lists are much simpler and significantly faster than equivalent algorithms for balanced trees.
Fractals for Secondary Key Retrieval
"... In this paper we propose the use of fractals and especially the Hilbert curve, in order to design good distancepreserving mappings. Such mappings improve the performance of secondarykey and spatial access methods, where multidimensional points have to be stored on an 1dimensional medium (e.g., ..."
Abstract

Cited by 161 (19 self)
 Add to MetaCart
(Show Context)
In this paper we propose the use of fractals and especially the Hilbert curve, in order to design good distancepreserving mappings. Such mappings improve the performance of secondarykey and spatial access methods, where multidimensional points have to be stored on an 1dimensional medium (e.g., disk). Good clustering reduces the number of disk accesses on retrieval, improving the response time. Our experiments on range queries and nearest neighbor queries showed that the proposed Hilbert curve achieves better clustering than older methods (&quot;bitshuffling&quot;, or Peano curve), for every situation we tried.
Alma0: An Imperative Language that Supports Declarative Programming
, 1998
"... Architecture The Alma Abstract Architecture (AAA) is the virtual architecture used during the intermediate code generation phase of the Alma0 compiler. The AAA combines the features of the abstract machines for imperative languages and for logic programming languages. The compiler compiles the Al ..."
Abstract

Cited by 56 (11 self)
 Add to MetaCart
Architecture The Alma Abstract Architecture (AAA) is the virtual architecture used during the intermediate code generation phase of the Alma0 compiler. The AAA combines the features of the abstract machines for imperative languages and for logic programming languages. The compiler compiles the Alma0 programs into AAA programs. In a second phase the AAA instructions are translated into C statements. As the Alma0 language itself, the AAA aims to combine the best of both worlds; elements were taken from virtual machines used to compile imperative languages (in particular the RISC architecture described in Wirth [1996, pp. 5559], and from the WAM machine used to compile a logical language (see AitKaci [1991]). Still, the AAA resembles most the virtual machines used in the compilation of imperative languages. The additions made to provide for the extensions of the Alma0 language are the failure handling instructions ONFAIL, FAIL, 40 \Delta Krzysztof R. Apt et al the log ...
Why use evolving algebras for hardware and software engineering?
, 1995
"... In this paper I answer the question how evolving algebras can be used for the design and analysis of complex hardware and software systems. I present the salient features of this new method and illustrate them through several examples from my work on specification and verification of programming lan ..."
Abstract

Cited by 38 (4 self)
 Add to MetaCart
In this paper I answer the question how evolving algebras can be used for the design and analysis of complex hardware and software systems. I present the salient features of this new method and illustrate them through several examples from my work on specification and verification of programming languages, compilers, protocols and architectures. The definition of a mathematical model for Hennessy and Patterson's RISC architecture DLX serves as a running example; this model is used in [24] to prove the correctness of instruction pipelining. I will point out the yet unexplored potential of the evolving algebra method for largescale industrial applications.
Extensive Operators in Partition Lattices for Image Sequence Analysis
 Signal Processing
, 1998
"... This paper deals with the class of extensive operators in the lattice of partitions. These operators are merging techniques. They can be used as filtering tools or as segmentation algorithms. In the first case, they are known as connected operators and, in the second case, they are region growing te ..."
Abstract

Cited by 31 (7 self)
 Add to MetaCart
This paper deals with the class of extensive operators in the lattice of partitions. These operators are merging techniques. They can be used as filtering tools or as segmentation algorithms. In the first case, they are known as connected operators and, in the second case, they are region growing techniques. This paper discusses the basic elements that have to be defined to create a merging algorithm: merging order, merging criterion and region model. This analysis highlights the similarity and differences between a filtering tool, such as a connected operator, and a segmentation algorithm. Taking benefit from the filtering and segmentation viewpoints, we propose a general merging algorithm that can be used to create new connected operators (in particular selfdual operators) and efficient segmentation algorithms (robust criteria and efficient implementation). Keywords partition lattices, region growing, connected operators, image segmentation and filtering, sequence analysis. Corres...
Set Functions for Functional Logic Programming
, 2009
"... We propose a novel approach to encapsulate nondeterministic computations in functional logic programs. Our approach is based on set functions that return the set of all the results of a corresponding ordinary operation. A characteristic feature of our approach is the complete separation between a u ..."
Abstract

Cited by 16 (15 self)
 Add to MetaCart
(Show Context)
We propose a novel approach to encapsulate nondeterministic computations in functional logic programs. Our approach is based on set functions that return the set of all the results of a corresponding ordinary operation. A characteristic feature of our approach is the complete separation between a usuallynondeterministic operation and its possiblynondeterministic arguments. This separation leads to the first provably orderindependent approach to computing the set of values of nondeterministic expressions. The proof is provided within the framework of graph rewriting in constructorbased systems. We propose an abstract implementation of our approach and prove its independence of the order of evaluation. Our approach solves easily and naturally problems mishandled by current implementations of functional logic languages.
Modelling and Analysis of Distributed and Reactive Systems using Evolving Algebras
 University of Aarhus
, 1995
"... This is a tutorial introduction into the evolving algebra approach to design and verification of complex computing systems. It is written to be used by the working computer scientist. We explain the salient features of the methodology by showing how one can develop from scratch an easily understanda ..."
Abstract

Cited by 14 (4 self)
 Add to MetaCart
(Show Context)
This is a tutorial introduction into the evolving algebra approach to design and verification of complex computing systems. It is written to be used by the working computer scientist. We explain the salient features of the methodology by showing how one can develop from scratch an easily understandable and transparent evolving algebra model for PVM, the widespread virtual architecture for heterogeneous distributed computing. Introduction In 1988 Yuri Gurevich has discovered the notion of evolving algebra in an attempt to sharpen Turing's thesis by complexity theoretic considerations (see [22]). Through numerous case studies (see [4] for an annotated list which is complete up to 1994) it has become clear since then that using the notion of evolving algebras one can develop a powerful and elegant specification methodology which has a huge yet unexplored potential for industrial applications. In this report we are going to explain the basic concepts of this approach to the design and ana...
A Note on Searching in a Binary Search Tree
, 1991
"... this paper we discuss another way of optimizing the search procedure. We present an algorithm for searching in a binary search tree using two way comparisons only. The algorithm is very sim ple and may scarcely be called new (in Reference 5 it is observed that binary search in an array, which can ..."
Abstract

Cited by 14 (1 self)
 Add to MetaCart
this paper we discuss another way of optimizing the search procedure. We present an algorithm for searching in a binary search tree using two way comparisons only. The algorithm is very sim ple and may scarcely be called new (in Reference 5 it is observed that binary search in an array, which can be made efficiently with twoway com parisons, corresponds to searching in an implicit tree). However, it seems that this way of improving binary tree search has been overlooked. With Received 10 January 1991 Revised 30 April 1991 PROCEDURE SentinelSearch (x: Data; T: NodePtr): NodePtr; sentinal  key := x; WHILE T  key # x DO IF x < T  key) THEN T := T  .left; END; IF T # sentinal THEN RETURN T END SentinalSearch; Figure 2. Searching with sentinel. The node sentinel is assumed to be the child of each leaf in the tree VAR candidate: NodePtr; END: IF (candidate# NIL) & (candidate  .key = x) THEN RETURN candidate this algorithm we obtain the same simple termination condition as when using a sentinel but instead of removing the test for empty pointers we remove the extra comparison made at each node in the tree. In the likely case that element comparisons are more expensive than pointer operations, our improvement is more significant than the improvement caused by using a sentinel. This makes it possible to code an efficient (in terms of the number of comparisons used) search procedure in highlevel languages independently of the optimizing capability of the compiler employed. We also give experimental results to indicate the speedup that is achieved by the presented algorithm
Language Oriented Programming
 In: Software  Concepts and Tools, Springer Berlin / Heidelberg, Vol.15, No.4
, 1994
"... This paper describes the concept of language oriented programming which is a novel way of organising the development of a large software system, leading to a different structure for the finished product. The approach starts by developing a formally specified, domainoriented, very highlevel languag ..."
Abstract

Cited by 14 (3 self)
 Add to MetaCart
(Show Context)
This paper describes the concept of language oriented programming which is a novel way of organising the development of a large software system, leading to a different structure for the finished product. The approach starts by developing a formally specified, domainoriented, very highlevel language which is designed to be wellsuited to developing “this kind of program”. The development process then splits into two independent stages: (1) Implement the system using this “middle level ” language, and (2) Implement a compiler or translator or interpreter for the language, using existing technology. The approach is claimed to have advantages for domain analysis, rapid prototyping, maintenance, portability, userenhanceable systems, reuse of development work, while also providing high development productivity. We give an example where the method has been used very successfully (in conjunction with rapid prototyping) in the development of a large software system: the FermaT reverse engineering tool. A major benefit of this approach to software development, as compared to the usual sequential “waterfall model ” is the speed with which products can be brought to market. This is due to “concurrent engineering”: the effective overlap of development stages. Finally, the “middle out ” development
Performance evaluation of digital audio watermarking algorithms
 In 43 rd IEEE Midwest Symposium on Circuits and Systems
"... Abstract We propose an algorithmindependent framework for rigorously comparing digital watermarking algorithms with respect to bit rate, perceptual quality, computational complexity, and robustness to signal processing. The framework is used to evaluate five audio watermarking algorithms from the ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
(Show Context)
Abstract We propose an algorithmindependent framework for rigorously comparing digital watermarking algorithms with respect to bit rate, perceptual quality, computational complexity, and robustness to signal processing. The framework is used to evaluate five audio watermarking algorithms from the literature, revealing that frequency domain techniques perform well under the criteria. I.