|Using Partial Evaluation in back-end firstname.lastname@example.org (Bharadwaj Yadavalli) (2000-06-03)|
|From:||"Bharadwaj Yadavalli" <email@example.com>|
|Date:||3 Jun 2000 17:36:17 -0400|
|Keywords:||prolog, report, available|
For anyone interested, my doctoral dissertation entitled "Partial
Evaluation in an Optimizing Prolog Compiler" which I defended
successfully is available at
http://www.ultranet.com/~abnay/thesisdoc.ps.gz The abstract is as
Specialization of programs and meta-programs written in high-level
languages has been an active area of research for some time.
Specialization contributes to improvement in program performance. We
begin with a hypothesis that partial evaluation provides a framework
for several traditional back-end optimizations. The present work
proposes a new compiler back-end optimization technique based on
specialization of low-level RISC-like machine code. Partial evaluation
is used to specialize the low-level code. Berkeley Abstract Machine
(BAM) code generated during compilation of Prolog is used as the
candidate low-level language to test the hypothesis. A partial
evaluator of BAM code was designed and implemented to demonstrate the
proposed optimization technique and to study its design issues.
The major contributions of the present work are as follows: It
demonstrates a new low-level compiler back-end optimization
technique. This technique provides a framework for several
conventional optimizations apart from providing opportunity for
machine-specific optimizations. It presents a study of various issues
and solutions to several problems encountered during design and
implementation of a low-level language partial evaluator that is
designed to be a back-end phase in a real-world Prolog compiler. We
also present an implementation-independent denotational semantics of
BAM code -- a low-level language. This provides a vehicle for showing
the correctness of instruction transformations.
We believe this work to provide the first concrete step towards usage
of partial evaluation on low-level code as a compiler back-end
optimization technique in real-world compilers.
S. Bharadwaj Yadavalli
Return to the
Search the comp.compilers archives again.