Re: What is a restructuring compiler?

A Pietu Pohjalainen <pohjalai@cc.helsinki.fi>
30 Oct 2004 22:46:23 -0400

          From comp.compilers

Related articles
What is a restructuring compiler? hzmonte@hotmail.com (2004-10-21)
Re: What is a restructuring compiler? nmm1@cus.cam.ac.uk (2004-10-23)
Re: What is a restructuring compiler? hzmonte@hotmail.com (2004-10-25)
Re: What is a restructuring compiler? nmm1@cus.cam.ac.uk (2004-10-30)
Re: What is a restructuring compiler? silviusr@yahoo.com (Silvius Rus) (2004-10-30)
Re: What is a restructuring compiler? pohjalai@cc.helsinki.fi (A Pietu Pohjalainen) (2004-10-30)
Re: What is a restructuring compiler? news1@oregonw.com (M Wolfe) (2004-11-29)
| List of all articles for this month |

From: A Pietu Pohjalainen <pohjalai@cc.helsinki.fi>
Newsgroups: comp.compilers
Date: 30 Oct 2004 22:46:23 -0400
Organization: University of Helsinki
References: 04-10-143 04-10-164 04-10-178
Keywords: optimize
Posted-Date: 30 Oct 2004 22:46:22 EDT

hzmonte <hzmonte@hotmail.com> wrote:
> I assume this restructuring is for optimization; so, a restructuring
> compiler is one kind of an optimizing compiler? If that's the case,
> why would there exist a restructuring compiler by itself? I mean, an
> optimizing compiler would not limit its optimization techniques to
> restructuring alone; that is, there would not be a compiler that does
> restructuring alone.


> [Actually, there are. They rewrite programs to make them more amenable
> to other kinds of optimization. -John]




Also, applying post-compilation time optimizations are a place for
compilers that do only restructuring. For example, doing link-time
optimizations, such as merging of module's interfaces and
implementations propsed by M.Fernandez is an example of this kind of
restructuring optimization: once the whole type hierarchy of a program
is known, there might no more be a need for carrying explicit
interface definitions with the object code.


For Java, I've been thinking of doing a similar kind of
optimization. In the general case, the possibility of programmer to
define dynamic class loaders makes it impossible to do whole-program
analysis; but if we take a closed-world assumption, which says that
all classes that are used in the program are available to the
analysis, we could similarily merge interfaces and classes and also
abstract classes and classes in order to reduce the number of class
files in the program's deployment package.


This would be beneficial in mobile Java environments where the size of
the deployment package is restricted. Does anybody have any recent
references of such work?


br,
Pietu Pohjalainen


Post a followup to this message

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