Results 1 -
2 of
2
HimML: Standard ML with Fast Sets and Maps
- In 5th ACM SIGPLAN Workshop on ML and its Applications
, 1994
"... We propose to add sets and maps to Standard ML. Our implementation uses hash-tries to code them, yields fast general-purpose set-theoretic operations, and is based on a run-time where all equal objects are shared. We present evidence that this systematic use of hash-consing, and the use of hash-trie ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
We propose to add sets and maps to Standard ML. Our implementation uses hash-tries to code them, yields fast general-purpose set-theoretic operations, and is based on a run-time where all equal objects are shared. We present evidence that this systematic use of hash-consing, and the use of hash-tries to code sets, provide good performance. 1 Introduction Sets have been an adequate foundation for mathematics for nearly a century, and are also an important conceptual medium in computer science. Modern specification languages like VDM [18] and Z [30] are based on sets. But few programming languages provide general-purpose sets and maps: although they could be adequate for prototyping, it is feared that they would be too slow for real applications. We have designed and implemented an extension of Standard ML [17], called HimML 1 [12] providing fast general (polymorphic) set-theoretic data-structures, and a comprehensive set of efficient operations on them. After mentioning related work...
Implementing Functional Languages with Fast Equality, Sets and Maps: an Exercise in Hash Consing
- Bull S.A. Research Center, rue Jean-Jaur`es, 78340 Les Clayes sous Bois
, 1994
"... We investigate hash consing, a memory allocation strategy for functional languages. Though the idea is not new, its systematic use as a foundation for the run-time system of a language is new. We call this systematic approach maximal sharing. This strategy is shown to be implementable in practice wi ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
We investigate hash consing, a memory allocation strategy for functional languages. Though the idea is not new, its systematic use as a foundation for the run-time system of a language is new. We call this systematic approach maximal sharing. This strategy is shown to be implementable in practice with small speed and space penalties, while offering great opportunities to save space and execution time in big projects. Besides, it paves the way towards more efficient implementations of very desirable data structures like sets and maps (set-theoretic functions of finite domain) [23], opening the door to a whole slew of set- and map-based functional languages like POPS-Lisp [18] and HimML [20], a variant of Standard ML written by the author. The average-case complexities of operations on sets and maps are investigated, and shown to be quite good indeed. Computation sharing and incremental computation are briefly considered in this framework. Garbage collection techniques are reviewed to d...

