Publication:
When Do Match-compilation Heuristics Matter?

Loading...
Thumbnail Image

Journal Title

Journal ISSN

Volume Title

Publisher

University of Virginia, Department of Computer Science

Research Projects

Organizational Units

Journal Issue

Abstract

Modern, statically typed, functional languages define functions by pattern matching. Although pattern matching is defined in terms of sequential checking of a value against one pattern after another, real implementations translate patterns into automata that can test a value against many patterns at once. Decision trees are popular automata. The cost of using a decision tree is related to its size and shape. The only method guaranteed to produce decision trees of minimum cost requires exponential match-compilation time, so a number of heuristics have been proposed in the literature or used in actual compilers. This paper presents an experimental evaluation of such heuristics, using the Standard ML of New Jersey compiler. The principal finding is that for most benchmark programs, all heuristics produce trees with identical sizes. For a few programs, choosing one heuristic over another may change the size of a decision tree, but seldom by more than a few percent. There are, however, machine-generated programs for which the right or wrong heuristic can make enormous differences: factors of 2-20.

Description

Original submission date: 2012-10-29T18:58:31Z

Subjects

Citation

Scott, Kevin, and Norman Ramsey. "When Do Match-compilation Heuristics Matter?." University of Virginia Dept. of Computer Science Tech Report (2000).

Collections

Endorsement

Review

Supplemented By

Referenced By