From: | Charles Fiterman <cef@geodesic.com> |
Newsgroups: | comp.compilers,comp.lang.asm.x86 |
Date: | 4 Jul 1997 14:40:48 -0400 |
Organization: | Geodesic Systems |
References: | 97-06-071 97-06-074 97-06-107 |
Keywords: | optimize, practice |
>That algorithm will always win. However, take an non
>trival assembly program and create algorithmically similar C
>and the compiled results will very similiar often smaller.
My opinion on this has been shifted to the machine by an article in
the 1997 SIGPLAN PLDI.
Simple Translation of Goal Directed Evaluation by Todd
Proebsting. http://www.cs.arizona.edu/people/todd
In it the goal directed expression
x > ((a to b) * (c to d))
is compiled into better code than I would have produced by hand. I
would have emulated nested for loops missing the fact that the path
from increment to range check is hotter than the path from
initialization to range check.
This is more than a compiler beating out a good programmer. Iterators
are basic to encapsulation of logic. If we can add iterators to a
language and produce code from them as good as what people would
produce by partial evaluation, we have very sophisticated tools for
building powerful dense programs.
Also specialization, producing code on the fly is a technique people
wont be using.
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.