ACM Home Page
Please provide us with feedback. Feedback
Compiling pattern matching to good decision trees
Full text PdfPdf (829 KB)
Source
International Conference on Functional Programming archive
Proceedings of the 2008 ACM SIGPLAN workshop on ML table of contents
Victoria, BC, Canada
SESSION: Session 2 table of contents
Pages 35-46  
Year of Publication: 2008
ISBN:978-1-60558-062-3
Author
Luc Maranget  INRIA, Paris-Rocquencourt, France
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 116,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1411304.1411311
What is a DOI?

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.