|And speaking of fast compilers... email@example.com (1992-11-12)|
|Re: And speaking of fast compilers... firstname.lastname@example.org (1992-11-16)|
|Re: And speaking of fast compilers... email@example.com (1992-11-17)|
|Re: And speaking of fast compilers... firstname.lastname@example.org (1992-11-17)|
|Re: And speaking of fast compilers... email@example.com (1992-11-17)|
|Re: And speaking of fast compilers... firstname.lastname@example.org (1992-11-23)|
|Re: And speaking of fast compilers... email@example.com (1992-11-24)|
|Re: And speaking of fast compilers... firstname.lastname@example.org (1992-12-03)|
|From:||email@example.com (Preston Briggs)|
|Organization:||Rice University, Houston|
|Date:||Tue, 17 Nov 1992 02:14:59 GMT|
|Keywords:||performance, Ada, design|
firstname.lastname@example.org (Dave Frederick) writes:
>One of the hot topics when I last worked on an Ada compiler was doing the
>above range and bounds checking optimization across procedures in a
>package. Interprocedural analysis is quite helpful for determining the
>possibility of these errors on var parameters. Of course, with a 7000-line
>package of page-sized procedures, we could be talking about 200-300
>procedures on which to perform inter-procedural analysis. This could be a
>week's worth of work.
Depends a lot on the exact formulation of the problem. Some approachs to
problems like interprocedural constant propagation, aliasing, etc. have
worked out very well. Others are NP-complete.
Back to the fast compiler idea though...
One idea that hasn't been mentioned was explored by Rick Bubenik in his
thesis -- optimistic computation (where explored optimistic compilation as
a particular instance). Basically, every time you save a source file, it
fires off a new make job on another processor. If the compile fails due
to errors -- fine, throw it away (but keep the stderr file). If it
suceeds -- great, now wait for the user to type make!
Rather similar to speculative execution being explored in processor
architecture. Of course, you may need more hardware, but lots of us work
on big networks of machines. Or we could even attempt the compile in
background -- after all, I don't use much of the machine to edit. Of
course, with a network, it makes more sense to fire up a big parallel make
(imagine we're editing an important include file).
I would assume that some of these ideas have also been explored in the
programming environment community.
Return to the
Search the comp.compilers archives again.