[comp.ai.digest] Describing Program Transformers with Higher-order Unification

finin@PRC.UNISYS.COM (08/27/88)

Date: Fri, 26 Aug 88 09:47 EDT
From: finin@PRC.Unisys.COM
Subject: Describing Program Transformers with Higher-order Unification


			      AI SEMINAR
		     UNISYS PAOLI RESEARCH CENTER
				   
    Describing Program Transformers with Higher-order Unification
				   
			    John J. Hannan
		   Computer and Information Science
		      University of Pennsylvania


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 Paloi 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  --