Abstract
Redescribe anew technique foroptimizing first-order functional programs. Programs arerepresented as graph grammars, and optimization proceeds by connterexample: when a graph generated by the grammar is found to contain an unnecessary computation, the optimizer attempts to reformulate the grammar so that it never again generates any graph that contains that counterexample. This kind of program reformulation corresponds to an interesting problem on context-free grammars. Our reformulation technique isderived from an (approximate) solution to this CFG problem. An optimizer called Thinner is the proof of concept for this technique. Thinner is a fully automatic, source-to-source optimizer for a Lisp-like language of purely functional, firstorder programs. Thinner rediscovers a wide variety of common compiler optimization. It also finds other more exotic transformations, including the well-known Fibonacci reformulation and the Knuth-Morris-Pratt optimization. © 1995, ACM. All rights reserved.
Author supplied keywords
Cite
CITATION STYLE
Webber, A. (1995). Optimization of Functional Programs by Grammar Thinning. ACM Transactions on Programming Languages and Systems (TOPLAS), 17(2), 293–330. https://doi.org/10.1145/201059.201067
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.