using optimizing compiler technology to advance software engineering (Paul C. Clements)
30 Oct 89 21:42:54 GMT

          From comp.compilers

Related articles
using optimizing compiler technology to advance software engineering (1989-10-30)
using optimizing compiler technology to advance software engineering (Marshall Cline) (1989-11-15)
Re: using optimizing compiler technology to advance software engineeri (1989-11-03)
| List of all articles for this month |

Posted-Date: 30 Oct 89 21:42:54 GMT
From: (Paul C. Clements)
Keywords: optimizing compilers, program performance, technology transfer
Date: 30 Oct 89 21:42:54 GMT
Followup-To: poster
Organization: U. Texas CS Dept., Austin, Texas

Anyone who has ever tried to talk someone into using software engineering
techniques such as information-hiding modularization, structured programming,
or even just a high-level language, has probably encountered the objection,
"But I can't afford the performance penalty that will cause!"

Assuming that's correct -- which is often the case, because many systems
do have very tight memory and time constraints -- what do you say? Assume
that "Get a more powerful computer" is NOT a helpful response.

What we would LIKE to say is this: If you use "good" techniques (HLL,
structured programming, no global data or shared data structures, CSP's,
information-hiding modules, etc., etc.) THEN we can crank your source code
through an optimizing compiler to get a result that is as time- (space-)
efficient as is possible. Or, we will let you specify the time/space
efficiency mix that you need, and if a program exists that meets the semantics
and the constraints, our compiler will produce it. The executable code will
be efficient, but the source code (that people maintain) will be easy to
test and modify.

That's what we'd LIKE to say. My question for this group is: What
CAN we say? How much of the postulated "magic" optimizer exists? Can
exist? Might exist? For instance, are there any optimization techniques
that can examine the "liveness" of variables in order to fold them into
the same storage area, and thus minimize -- not just improve, but minimize --
the memory used for variable storage? This is a common trick of assembly
language programmers, but something that is not in general possible in a
system developed as a set of independent modules.

If there is interest, I will post a summary of responses (deadline = 11/5/89)
plus some theoretical results of which I'm already aware. Specific
citations will be greatly appreciated.

P. C. Clements
University of Texas at Austin
[Send your answers along to compilers if they're of general interest. I
suspect that specific experience would be more useful than generic flamage.

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.