Results 1  10
of
23
Obfuscation of Executable Code to Improve Resistance to Static Disassembly
 IN ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (CCS
, 2003
"... A great deal of software is distributed in the form ofexecutable code. The ability to reverse engineer such ..."
Abstract

Cited by 142 (10 self)
 Add to MetaCart
A great deal of software is distributed in the form ofexecutable code. The ability to reverse engineer such
Efficient Logic Variables for Distributed Computing
"... We define a practical algorithm for distributed rational tree unification and prove its correctness in both the offline and online cases. We derive the distributed algorithm from a centralized one, showing clearly the tradeoffs between local and distributed execution. The algorithm is used to rea ..."
Abstract

Cited by 23 (13 self)
 Add to MetaCart
We define a practical algorithm for distributed rational tree unification and prove its correctness in both the offline and online cases. We derive the distributed algorithm from a centralized one, showing clearly the tradeoffs 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. AsiaPacific Software Engineering Conf. (APSEC '95), IEEE, Los Alamitos, Cal
, 1995
"... Embedded specifications in objectoriented (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 "designbycontract" is based on Hoare logic for which concurrency extensions exist. ..."
Abstract

Cited by 16 (7 self)
 Add to MetaCart
Embedded specifications in objectoriented (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 "designbycontract" 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 tradeoff 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 sideeffects : : : : : : : : : : : : : : : : : : : : : : : : 61 5 Analysis of functional programs and algebras 63 5.1 Cost measures : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 63 5.2 Worstcase analysis : : : : : : : : : : : : : : : : : : : : : : : : : : 67 5.3 Amortized cost of functions : : : : : : : : : : : : : : : : : : : : : 69 5.4 Amortized analysis : : : : : : : : : : : : : : : : : : : : : : : : : ...
A Complexity Calculus for ObjectOriented Programs
 Journal of ObjectOriented Systems
, 1994
"... Modern imperative objectoriented 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 objectoriented 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 socalled OOmachines, 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 welldocumented 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...
A Rulebased Algorithm for Rigid Eunification
, 1994
"... We present a new rulebased method for computing complete sets of solved forms for rigid Eunifiers, improving on Gallier et al.'s method on several points: sharing of subterms is improved; substitution application and rewriting are done implicitly; the search for rigid Eunifiers is guided by the ..."
Abstract

Cited by 9 (1 self)
 Add to MetaCart
We present a new rulebased method for computing complete sets of solved forms for rigid Eunifiers, improving on Gallier et al.'s method on several points: sharing of subterms is improved; substitution application and rewriting are done implicitly; the search for rigid Eunifiers 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 nondeterministic 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 NPcompleteness of rigid Eunification.
Efficient dynamic methodlookup 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 9 (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...
Vitter: On Searching Compressed String Collections CacheObliviously
 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 cachefriendly and compressed. We provide new insights on f ..."
Abstract

Cited by 8 (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 cachefriendly and compressed. We provide new insights on front coding [24], introduce other novel linearizations, and study how close their space occupancy is to the informationtheoretic 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/Osearch 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 informationtheoretic minimum.
Improved Bounds for Finger Search on a RAM
 In Algorithms – ESA 2003, LNCS Vol. 2832 (Springer 2003
, 2003
"... We present a new finger search tree with O(1) worstcase update time and O(log log d) expected search time with high probability in the Random Access Machine (RAM) model of computation for a large class of input distributions. The parameter d represents the number of elements (distance) between ..."
Abstract

Cited by 8 (7 self)
 Add to MetaCart
We present a new finger search tree with O(1) worstcase update time and O(log log d) expected search time with high probability in the Random Access Machine (RAM) model of computation for a large class of input distributions. The parameter d represents the number of elements (distance) between the search element and an element pointed to by a finger, in a finger search tree that stores n elements. For the need of the analysis we model the updates by a "balls and bins" combinatorial game that is interesting in its own right as it involves insertions and deletions of balls according to an unknown distribution.