Results 1 - 10
of
16
Efficient Logic Variables for Distributed Computing
"... We define a practical algorithm for distributed rational tree unification and prove its correctness in both the off-line and on-line cases. We derive the distributed algorithm from a centralized one, showing clearly the trade-offs between local and distributed execution. The algorithm is used to rea ..."
Abstract
-
Cited by 22 (12 self)
- Add to MetaCart
We define a practical algorithm for distributed rational tree unification and prove its correctness in both the off-line and on-line cases. We derive the distributed algorithm from a centralized one, showing clearly the trade-offs between local and distributed execution. The algorithm is used to realize logic variables in the Mozart Programming System, which implements the Oz language (see
Error Correcting Codes, Perfect Hashing Circuits, and Deterministic Dynamic Dictionaries
, 1997
"... We consider dictionaries of size n over the finite universe U = and introduce a new technique for their implementation: error correcting codes. The use of such codes makes it possible to replace the use of strong forms of hashing, such as universal hashing, with much weaker forms, such as clus ..."
Abstract
-
Cited by 17 (2 self)
- Add to MetaCart
We consider dictionaries of size n over the finite universe U = and introduce a new technique for their implementation: error correcting codes. The use of such codes makes it possible to replace the use of strong forms of hashing, such as universal hashing, with much weaker forms, such as clustering. We use
Reasoning About Concurrent Objects
- In: Proc. Asia-Pacific Software Engineering Conf. (APSEC '95), IEEE, Los Alamitos, Cal
, 1995
"... Embedded specifications in object-oriented (OO) languages such as Eiffel and Sather are based on a rigorous approach towards validation, compatibility and reusability of sequential programs. The underlying method of "design-by-contract" is based on Hoare logic for which concurrency extensions exist. ..."
Abstract
-
Cited by 15 (7 self)
- Add to MetaCart
Embedded specifications in object-oriented (OO) languages such as Eiffel and Sather are based on a rigorous approach towards validation, compatibility and reusability of sequential programs. The underlying method of "design-by-contract" is based on Hoare logic for which concurrency extensions exist. However concurrent OO languages are still in their infancy. They have inherently imperative facets, such as object identity, sharing, and synchronisation, which cannot be ignored in the semantics. Any marriage of objects and concurrency requires a trade-off in a space of intertwined qualities. This paper summarises our work on a type system, calculus and an operational model for concurrent objects in a minimal extension of the Eiffel and Sather languages (cSather). We omit concurrency control constructs and instead use assertions as synchronisation constraints for asynchronous functions. We show that this provides a framework in which subtyping and concurrency can coexist. 1 Introduction C...
Data Structures and Amortized Complexity in a Functional Setting
, 1992
"... views of amortization : : : : : : : : : : : : : : : : : : : 44 4 Implementation aspects 49 4.1 Functional program notation : : : : : : : : : : : : : : : : : : : : 50 4.2 Eager evaluation : : : : : : : : : : : : : : : : : : : : : : : : : : : 51 4.3 Pointer implementation of stacks : : : : : : : : : ..."
Abstract
-
Cited by 11 (3 self)
- Add to MetaCart
views of amortization : : : : : : : : : : : : : : : : : : : 44 4 Implementation aspects 49 4.1 Functional program notation : : : : : : : : : : : : : : : : : : : : 50 4.2 Eager evaluation : : : : : : : : : : : : : : : : : : : : : : : : : : : 51 4.3 Pointer implementation of stacks : : : : : : : : : : : : : : : : : : 52 4.4 Destructivity : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 54 4.5 Queues and concatenable deques : : : : : : : : : : : : : : : : : : Contents iii 4.6 Linear usage of destructive monoalgebras : : : : : : : : : : : : : 58 4.7 Benevolent side-effects : : : : : : : : : : : : : : : : : : : : : : : : 61 5 Analysis of functional programs and algebras 63 5.1 Cost measures : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 63 5.2 Worst-case analysis : : : : : : : : : : : : : : : : : : : : : : : : : : 67 5.3 Amortized cost of functions : : : : : : : : : : : : : : : : : : : : : 69 5.4 Amortized analysis : : : : : : : : : : : : : : : : : : : : : : : : : ...
A Complexity Calculus for Object-Oriented Programs
- Journal of Object-Oriented Systems
, 1994
"... Modern imperative object-oriented design methods and languages take a rigorous approach to compatibility and reusability mainly from an interface and specification point of view --- if at all. Beside functional specification, however, users select classes from libraries based on performance characte ..."
Abstract
-
Cited by 11 (6 self)
- Add to MetaCart
Modern imperative object-oriented design methods and languages take a rigorous approach to compatibility and reusability mainly from an interface and specification point of view --- if at all. Beside functional specification, however, users select classes from libraries based on performance characteristics, too. This article develops an appropriate fundamental approach towards performance estimation, measurement and metering in OO approaches. We use examples written in the Sather language to demonstrate the concepts of so-called OO-machines, which lend themselves to performance metrics, and a calculus for reasoning about performance. A language binding of these concepts is then sketched in the form of cost annotations that allow programmers to file classes in libraries well-documented with cost related specifications. These annotations can optionally be used for instrumenting code that meters cost and checks whether the taken measurements are consistent with the given specification. In...
Efficient dynamic method-lookup for object oriented languages (Extended Abstract)
, 1996
"... ) Paolo Ferragina 1 and S. Muthukrishnan 2 1 Dipartimento di Informatica, Universit`a di Pisa, Italy. ferragin@di.unipi.it 2 Dept. of Computer Science, Univ. of Warwick, UK. muthu@dcs.warwick.ac.uk 1 Introduction We consider the following dynamic data structural problem. We are given a rooted ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
) Paolo Ferragina 1 and S. Muthukrishnan 2 1 Dipartimento di Informatica, Universit`a di Pisa, Italy. ferragin@di.unipi.it 2 Dept. of Computer Science, Univ. of Warwick, UK. muthu@dcs.warwick.ac.uk 1 Introduction We consider the following dynamic data structural problem. We are given a rooted tree of n nodes and a set f1; 2; : : :; Cg of colors. Each node u has a subset of these colors, say of size d u , and P u du = D. Note D C. The problem is to dynamically maintain this tree under updates, that is, insert(p; c) and delete(p; c) operations, and answer find(p; c) queries. The operations insert(p; c) and delete(p; c) respectively add and remove the color c from the node pointed to by pointer p (the tree does not change topology under these dynamic operations). The find(p; c) query returns the nearest ancestor, if any, of the node pointed to by p (possibly that node itself) which has the color c, 1 c C. If no such ancestor exists, Find(p; c) returns Null. We call this the...
A Rule-based Algorithm for Rigid E-unification
, 1994
"... We present a new rule-based method for computing complete sets of solved forms for rigid E-unifiers, improving on Gallier et al.'s method on several points: sharing of sub-terms is improved; substitution application and rewriting are done implicitly; the search for rigid E-unifiers is guided by the ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
We present a new rule-based method for computing complete sets of solved forms for rigid E-unifiers, improving on Gallier et al.'s method on several points: sharing of sub-terms is improved; substitution application and rewriting are done implicitly; the search for rigid E-unifiers is guided by the structure of the terms, and needs slightly less guessing. Our method makes extensive use of the congruence closure algorithm, and builds on it a non-deterministic procedure with six rules. We prove its soundness, its completeness --- with a sharper notion of completeness than Gallier ---, its termination, and get as a consequence a more elementary proof of the NP-completeness of rigid E-unification.
Vitter: On Searching Compressed String Collections Cache-Obliviously
- PODS
"... Current data structures for searching large string collections either fail to achieve minimum space or cause too many cache misses. In this paper we discuss some edge linearizations of the classic trie data structure that are simultaneously cache-friendly and compressed. We provide new insights on f ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
Current data structures for searching large string collections either fail to achieve minimum space or cause too many cache misses. In this paper we discuss some edge linearizations of the classic trie data structure that are simultaneously cache-friendly and compressed. We provide new insights on front coding [24], introduce other novel linearizations, and study how close their space occupancy is to the information-theoretic minimum. The moral is that they are not just heuristics. Our second contribution is a novel dictionary encoding scheme that builds upon such linearizations and achieves nearly optimal space, offers competitive I/O-search time, and is also conscious of the query distribution. Finally, we combine those data structures with cacheoblivious tries [2, 5] and obtain a succinct variant whose space is close to the information-theoretic minimum.
Type Inference for First-Class Messages with Feature Constraints
- International Journal of Foundations of Computer Science
, 1998
"... We present a constraint system OF of feature trees that is appropriate to specify and implement type inference for first-class messages. OF extends traditional systems of feature constraints by a selection constraint xhyiz "by first-class feature tree" y, in contrast to the standard selection con ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
We present a constraint system OF of feature trees that is appropriate to specify and implement type inference for first-class messages. OF extends traditional systems of feature constraints by a selection constraint xhyiz "by first-class feature tree" y, in contrast to the standard selection constraint x[ f ]y "by fixed feature" f . We investigate the satisfiability problem of OF and show that it can be solved in polynomial time, and even in quadratic time in an important special case. We compare OF with Treinen's constraint system EF of feature constraints with first-class features, which has an NP-complete satisfiability problem. This comparison yields that the satisfiability problem for OF with negation is NP-hard. Based on OF we give a simple account of type inference for first-class messages in the spirit of Nishimura's recent proposal, and we show that it has polynomial time complexity: We also highlight an immediate extension that is desirable but makes type inference NP-hard.
Reasoning about Complexity of Object-Oriented Programs
, 1994
"... This report develops an appropriate fundamental approach towards performance estimation, measurement and metering in OO approaches. We use examples written in the Sather language to demonstrate the concepts of so-called OO-machines, which lend themselves to performance metrics, and a calculus for re ..."
Abstract
-
Cited by 4 (4 self)
- Add to MetaCart
This report develops an appropriate fundamental approach towards performance estimation, measurement and metering in OO approaches. We use examples written in the Sather language to demonstrate the concepts of so-called OO-machines, which lend themselves to performance metrics, and a calculus for reasoning about performance. A language binding of these concepts is then sketched in the form of cost annotations that allow programmers to file classes in libraries well-documented with cost related specifications. These annotations can optionally be used for instrumenting code that meters cost and checks whether the taken measurements are consistent with the given specification. In this way programmers can benefit from cost annotations by means of documentation and rigorous testing without requiring a deep familiarity with the theoretical underpinnings. Keywords: Object-Oriented Languages, Complexity, Amortized Complexity

