Results 1 -
3 of
3
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...
1 + 1 = 1: an optimizing Caml compiler
- IN ACM-SIGPLAN WORKSHOP ON ML AND ITS APPLICATIONS
, 1994
"... We present a new Caml compiler, which was obtained by an original approach: a simple pipeline between two existing compilers, each one devoted to half of the compilation process. The first compiler is a Caml compiler, it is in charge of the front end, and ensures compatibility. The second compiler i ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
We present a new Caml compiler, which was obtained by an original approach: a simple pipeline between two existing compilers, each one devoted to half of the compilation process. The first compiler is a Caml compiler, it is in charge of the front end, and ensures compatibility. The second compiler is an optimizing Scheme compiler, it constitutes the back end, and ensures efficiency. These are Caml Light 0.6 byte-code compiler and a Scheme compiler (Bigloo). Using this technology, we were able to write the optimizing compiler in only two man-months. The new compiler is bootstrapped, fully compatible with the Caml Light 0.6 compiler, and features interesting inter-module optimizations for curried functions. It produces efficient code, comparable with the one produced by other ML compilers (including SML/NJ). Our new compiler, Bigloo, is freely available.
Programmation Fonctionnelle Et Parallélisme: Une Approche Pragmatique
, 1994
"... We introduce DPML, an intermediate-level portable language for massively parallel programming designed as an extension of Mini-ML. Its parallel execution mode generalises data-parallelism and features explicit localisations and communications. Unlike imperative parallel languages with explicit com ..."
Abstract
- Add to MetaCart
We introduce DPML, an intermediate-level portable language for massively parallel programming designed as an extension of Mini-ML. Its parallel execution mode generalises data-parallelism and features explicit localisations and communications. Unlike imperative parallel languages with explicit communications, DPML is deterministic. A DPML program is seen as a static vector of ML programs communicating through remote evaluation and a global protocol. The language's implementation reuses that of Caml and does not require a distributed GC.

