Optimization of Functional Programs by Grammar Thinning

5Citations
Citations of this article
5Readers
Mendeley users who have this article in their library.

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.

Cite

CITATION STYLE

APA

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.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free