Program Analysis (Was: Superoptimizers)

Paul Robinson <>
Sat, 20 Feb 1993 21:07:37 GMT

          From comp.compilers

Related articles
Effectiveness of compilers today (1993-02-14)
Re: Superoptimizers (was Re: Effectiveness of compilers today) (1993-02-19)
Program Analysis (Was: Superoptimizers) (Paul Robinson) (1993-02-20)
| List of all articles for this month |

Newsgroups: comp.compilers
From: Paul Robinson <>
Keywords: optimize
Organization: Compilers Central
References: 93-02-082 93-02-111
Date: Sat, 20 Feb 1993 21:07:37 GMT

> I've wondered if it's possible to have a program grovel the ASTs of a
> bunch of programs and extract out "common" combinations of operations that
> should be candidates for superoptimizer investigation.

I'm not sure what you mean by "grovel the ASTs" but let's say that you
mean to analyze common program executions or sources to see what they are
doing. The only problem in doing this is to get people to let you see
their code.

Read "The Psychology of Computer Programming" for an issue about this for
the exact same reason: some people wanted to analyze the errors people
were getting in their programs to see if better error messages or analysis
could be done to improve the way the system works. For most people, it
was the equivalent of pulling teeth without anesthesia to get them to give
up their programs because people don't want to admit they've made
mistakes; programs are extremely personal, because of the fact they do
things, I believe that the attachment people can have with software
borders on the attachments between people and their offspring.

You might try going through the source code libraries of stuff on
Internet, but then again, that may be atypical since any sources there are
ones that have been "cleaned up" for the public to see. If you want to
look at the grungy, dirty code that people write real applications in, you
are going to have to be about as circumspect as a man trying to propose
adultery to someone's otherwise faithful wife! People's programs are
extremely personal to them.

I once wanted to find out about developing an MTA (Message Transfer Agent)
for a certain class of message processing. The operator of one message
service had written the program to do this on his own. I had already
written the User Agent to handle messages locally; so I asked him about
making the program available so I could implement it elsewhere and make a
split of profits from the sale. Even though I had no intention of selling
source, and he wasn't even using the program any more, he was afraid to
let anyone else see it because it was so hastily written and very ugly in
his opinion; he didn't want anyone to know how bad it looks like. Ugly
code always gets the Cinderella treatment.

Post a followup to this message

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