|
ABSTRACT
We address the issue of compiling ML pattern matching to compact and efficient decisions trees. Traditionally, compilation to decision trees is optimized by (1) implementing decision trees as dags with maximal sharing; (2) guiding a simple compiler with heuristics. We first design new heuristics that are inspired by necessity, a concept from lazy pattern matching that we rephrase in terms of decision tree semantics. Thereby, we simplify previous semantic frameworks and demonstrate a straightforward connection between necessity and decision tree runtime efficiency. We complete our study by experiments, showing that optimizing compilation to decision trees is competitive with the optimizing match compiler of Le Fessant and Maranget (2001).
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
Marianne Baudinet and David B. MacQueen. Tree pattern matching for ML. http://www.smlnj.org/compiler-notes/85-note-baudinet.ps, 1985.
|
| |
3
|
Coq. The Coq proof assistant (v. 8.1). By the Coq team, http://coq.inria.fr/, 2007.
|
| |
4
|
Jean-Christophe Filliâtre. The Why verification tool (v. 2.13). http://why.lri.fr/, 2008.
|
 |
5
|
|
| |
6
|
Gérard Huet and Jean-Jacques Lévy. Call by need computations in non-ambiguous linear term rewriting systems. In Jean-Louis Lassez and Gordon D. Plotkin, editors, Computational Logic, Essays in Honor of Alan Robinson. The MIT Press, 1991.
|
| |
7
|
|
 |
8
|
|
| |
9
|
Xavier Leroy, Damien Doligez, Jacques Garrigue, Jérôme Vouillon, and Didier Rémy. The Objective Caml language (v. 3.10). http://caml.inria.fr, 2007.
|
| |
10
|
Luc Maranget. Warnings for pattern matching. Journal of Functional Programming, 17: 387--422, May 2007.
|
 |
11
|
|
| |
12
|
|
| |
13
|
George Necula, Scott McPeak, Westley Weimer, Ben Liblit, Matt Harren, Ramond To, and Aman Bhargava. Cil - infrastructure for C program analysis and transformation (v. 1.3.6). http://manju.cs.berkeley.edu/cil/, 2007.
|
| |
14
|
|
| |
15
|
Scott Owens. A sound semantics for OCaml-Light. In European Symphosium On Programming, 2008. LNCS 4960.
|
| |
16
|
|
| |
17
|
Gordon D. Plotkin. LCF considered as a programming language. Theoretical Computer Science, 5: 225--255, December 1977.
|
 |
18
|
|
| |
19
|
|
| |
20
|
|
| |
21
|
Peter Sestoft. ML pattern matching compilation and partial evaluation. In Dagstuhl Seminar on Partial Evaluation. Springer-Verlag, 1996. LNCS 1110.
|
 |
22
|
|
| |
23
|
Terese. Term Rewriting Systems. Cambridge University Press, 2003. Terese is Marc Bezem, Jan Willem Klop and Roel de Vrier.
|
|