Proceedings Article10.1145/800116.803770
Optimal code generation for expression trees
Alfred V. Aho,S. C. Johnson +1 more
- 05 May 1975
- pp 207-217
130
TL;DR: A dynamic programming algorithm is presented which produces optimal code for any machine in the class; this algorithm runs in time which is linearly proportional to the number of vertices in an expression tree.
read more
Abstract: We discuss the problem of generating code for a wide class of machines, restricting ourselves to the computation of expression trees. After defining a broad class of machines and discussing the properties of optimal programs on these machines, we derive a necessary and sufficient condition which can be used to prove the optimality of any code generation algorithm for expression trees on this class. We then present a dynamic programming algorithm which produces optimal code for any machine in the class; this algorithm runs in time which is linearly proportional to the number of vertices in an expression tree.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
The New C Standard (Excerpted material) An Economic and Cultural Commentary
Derek M. Jones
- 01 Jan 2008
TL;DR: Form of Control Expression % Abstract Form of control Expression % others 32.4 Selection statements 1740 selection-statements Fu nc tio n de fin iti on s 1 10 100 1,000 10,000 0 25 50 75 100 × × if • • else switch × × ××××–×–––× × ×–– ×× ×–××
389
Code generation using tree matching and dynamic programming
TL;DR: A tree-manipulation language called twig has been developed to help construct efficient code generators that combines a fast top-down tree-pattern matching algorithm with dynamic programming.
Instruction-level parallel processing: history, overview, and perspective
TL;DR: Instruction-level parallelism (ILP) as mentioned in this paper is a family of processor and compiler design techniques that speed up execution by causing individual machine operations to execute in parallel, and it has become a much more significant force in computer design.
348
•Proceedings Article
Statistical syntax-directed translation with extended domain of locality
Liang Huang,Kevin Knight,Aravind K. Joshi +2 more
- 08 Aug 2006
TL;DR: A simple-yet-effective algorithm to generate non-duplicate k-best translations for n-gram rescoring is devised and a direct probability model is defined and a linear-time dynamic programming algorithm is used to search for the best derivation.
222
Code Generation for Expressions with Common Subexpressions.
Alfred V. Aho,S. C. Johnson,Jeffrey D. Ullman +2 more
- 01 Jan 1976
TL;DR: This paper shows the problem of generating optimal code for expressions containing common subexpressions is computationally difficult, even for simple expressions and simple machines.
168
References
Reducibility Among Combinatorial Problems.
Richard M. Karp
- 01 Jan 1972
TL;DR: Throughout the 1960s I worked on combinatorial optimization problems including logic circuit design with Paul Roth and assembly line balancing and the traveling salesman problem with Mike Held, which made me aware of the importance of distinction between polynomial-time and superpolynomial-time solvability.
13.6K
•Book
The Design and Analysis of Computer Algorithms
Alfred V. Aho,John E. Hopcroft +1 more
- 01 Jan 1974
TL;DR: This text introduces the basic data structures and programming techniques often used in efficient algorithms, and covers use of lists, push-down stacks, queues, trees, and graphs.
10.6K
The complexity of theorem-proving procedures
Stephen A. Cook
- 03 May 1971
TL;DR: It is shown that any recognition problem solved by a polynomial time-bounded nondeterministic Turing machine can be “reduced” to the problem of determining whether a given propositional formula is a tautology.
7.4K
Complete register allocation problems
Ravi Sethi
- 30 Apr 1973
TL;DR: It is shown that several variants of the register allocation problem for straight line programs are polynomial complete, and the case when each value is computed exactly once, and when values may be recomputed as necessary.
On compiling algorithms for arithmetic expressions
TL;DR: Algorithm concerning arithmetic expressions used in a FORTRAN IV compiler for a HITAC-5020 computer having n accumulators generates an object code which minimizes the frequency of storing and recovering the partial results of the arithmetic expressions in cases where there are several accumulators.
69