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 hashtries to code them, yields fast generalpurpose settheoretic operations, and is based on a runtime where all equal objects are shared. We present evidence that this systematic use of hashconsing, and the use of hashtrie ..."
Abstract

Cited by 9 (2 self)
 Add to MetaCart
We propose to add sets and maps to Standard ML. Our implementation uses hashtries to code them, yields fast generalpurpose settheoretic operations, and is based on a runtime where all equal objects are shared. We present evidence that this systematic use of hashconsing, and the use of hashtries 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 generalpurpose 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) settheoretic datastructures, 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 JeanJaur`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 runtime 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 6 (3 self)
 Add to MetaCart
(Show Context)
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 runtime 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 (settheoretic functions of finite domain) [23], opening the door to a whole slew of set and mapbased functional languages like POPSLisp [18] and HimML [20], a variant of Standard ML written by the author. The averagecase 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...