Publication View

Fast Mergeable Integer Maps (1998)

Abstract
Finite maps are ubiquitous in many applications, but perhaps nowhere more so than in compilers and other language processors. In these applications, three operations on finite maps dominate all others: looking up the value associated with a key, inserting a new binding, and merging two finite maps. Most implementations of finite maps in functional languages are based on balanced binary search trees, which perform well on the first two, but poorly on the third. We describe an implementation of finite maps with integer keys that performs well in practice on all three operations. This data structure is not new---indeed, it is thirty years old this year---but it deserves to be more widely known. 1 Introduction Finite maps are the workhorse data structure in every compiler. Imperative implementations typically use hash tables, whereas functional implementations typically use balanced binary search trees. Both are good at lookups and insertions, which---not coincidentally---are the two mos...

Publication details
Download http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.49.1481
Source http://www.cs.columbia.edu/~cdo/ml98maps.ps.gz
Contributors CiteSeerX
Repository CiteSeerX - Scientific Literature Digital Library and Search Engine (United States)
Type text
Language English
Relation 10.1.1.54.6229, 10.1.1.102.2915, 10.1.1.46.223, 10.1.1.15.5130, 10.1.1.124.1159, 10.1.1.35.8482, 10.1.1.62.4643, 10.1.1.104.4224, 10.1.1.70.5355, 10.1.1.74.8965, 10.1.1.81.1573, 10.1.1.81.2414, 10.1.1.81.5793, 10.1.1.1.6348