Program Translation via Abstraction and Reimplementation

An abstraction-and-reimplementation paradigm is presented in which the source program is first analyzed in order to obtain a programming-language-independent abstract understanding of the computation performed by the program as a whole. The program is then reimplemented in the target language based on this understanding. The key to this approach is the abstract understanding obtained. It allows the translator to benefit from an appreciation of the global features of the source program without being distracted by what are considered irrelevant details. Knowledge-based translation via abstraction and reimplementation is described as one of the goals of the Programmer's Apprentice project. A translator which translates Cobol programs into Hibol (a very-high-level business data processing language) has been constructed. A computer which generates extremely efficient PDP-11 object code for Pascal programs has been designed. >

[1]  Micha Sharir,et al.  Experience with the SETL Optimizer , 1983, TOPL.

[2]  Robert Balzer,et al.  Transformational Implementation: An Example , 1981, IEEE Transactions on Software Engineering.

[3]  James M. Boyle,et al.  Program Reusability through Program Transformation , 1984, IEEE Transactions on Software Engineering.

[4]  Richard C. Waters The Programmer's Apprentice: A Session with KBEmacs , 1985, IEEE Transactions on Software Engineering.

[5]  R. Stockton Gaines On the translation of machine language programs , 1965, CACM.

[6]  MARGARET KING,et al.  EUROTRA – A European System for Machine Translation , 1981 .

[7]  Elaine Kant On the efficient synthesis of efficient programs , 1983 .

[8]  Hanan Samet Experience with software conversion , 1981, Softw. Pract. Exp..

[9]  Charles Rich,et al.  The Layered Architecture of a System for Reasoning about Programs , 1985, IJCAI.

[10]  Mike F. Smith,et al.  Automatic Assembler Source Translation from the Z80 to the MC6809 , 1984, IEEE Micro.

[11]  Douglas R. Smith,et al.  Research on Knowledge-Based Software Environments at Kestrel Institute , 1985, IEEE Transactions on Software Engineering.

[12]  Linda M. Wills Automated Program Recognition: A Feasibility Demonstration , 1990, Artif. Intell..

[13]  Ken Kennedy,et al.  Automatic loop interchange , 2004, SIGP.

[14]  Jaime G. Carbonell,et al.  Steps Toward Knowledge-Based Machine Translation , 1981, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[15]  Charles Rich A Formal Representation For Plans In The Programmer's Apprentice , 1982, On Conceptual Modelling.

[16]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[17]  Guy L. Steele,et al.  Common Lisp the Language , 1984 .

[18]  Jaime G. Carbonell,et al.  Knowledge-Based Machine Translation. , 1978 .

[19]  Daniel C Brotsky An Algorithm for Parsing Flow Graphs , 1984 .

[20]  Richard C. Waters,et al.  A Method for Analyzing Loop Programs , 1979, IEEE Transactions on Software Engineering.

[21]  Charles Rich Inspection Methods in Programming: Cliches and Plans , 1987 .

[22]  Allen B. Tucker,et al.  A perspective on machine translation: theory and practice , 1984, CACM.