Proc. of a conference on Functional programming languages and computer architecture
Compiling pattern matching by term decomposition
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Compiling lazy pattern matching
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
SIAM Journal on Computing
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
The Definition of Standard ML
Implementation of Lazy Pattern Matching Algorithms
ESOP '88 Proceedings of the 2nd European Symposium on Programming
Optimal Adaptive Pattern Matching
IEA/AIE '02 Proceedings of the 15th international conference on Industrial and engineering applications of artificial intelligence and expert systems: developments in applied artificial intelligence
A Term Pattern-Match Compiler Inspired by Finite Automata Theory
CC '92 Proceedings of the 4th International Conference on Compiler Construction
When Do Match-compilation Heuristics Matter?
When Do Match-compilation Heuristics Matter?
Type-safe modular hash-consing
Proceedings of the 2006 workshop on ML
Extensible pattern matching via a lightweight language extension
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
A sound semantics for OCamllight
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Optimality for dynamic patterns
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Compiling contextual objects: bringing higher-order abstract syntax to programmers
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Hi-index | 0.00 |
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).