finin@prc.unisys.com (Tim Finin) (07/26/88)
Source-to-source program transformers belong to the class of
meta-programs that manipulate programs as objects. It has previously
been argued that a higher-order extension of Prolog, such as
Lambda-Prolog, makes a suitable implementation language for such
meta-programs. In this paper, we consider this claim in more detail.
In Lambda-Prolog, object-level programs and program schemata can be
represented using simply typed lambda-terms and higher-order
(functional) variables. Unification of these lambda-terms, called
higher-order unification, can elegantly describe several important
meta-level operations on programs. We detail some properties of
higher-order unification that make it suitable for analyzing program
structures. We then present (in Lambda-Prolog) the specification of
several simple program transformers and demonstrate how these can be
combined to yield more general transformers. With the depth-first
control strategy of Lambda-Prolog for both clause selection and
unifier selection all the above mentioned specifications can be and
have been executed and tested.
2:00 pm Wednesday, August 3
Unisys Paoli Research Center
BIC Conference Room
Route 252 and Central Ave.
Paoli PA 19311
-- non-Unisys visitors who are interested in attending should --
-- send email to finin@prc.unisys.com or call 215-648-7446 --
--
Tim Finin finin@prc.unisys.com
Paoli Research Center ..!{psuvax1,sdcrdcf,cbmvax}!burdvax!finin
Unisys 215-648-7446 (office) 215-386-1749 (home)
PO Box 517, Paoli PA 19301 215-648-7412 (fax)