Compiling recursive Prolog programs with list structure into procedural languages

Young K. Nam, Lawrence Joseph Henschen

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

We present an algorithm for transforming a mutual recursive program in Prolog, which contains the list data structure as a term of the predicate, into an iterative program using a while loop in a procedural language like PASCAL. The purpose of this paper is a part of the long-range project to use general logic programming as a software specification tool. The PASCAL program generated by the algorithm presented in this paper obtains the same result as the Prolog program, but without unification and backtracking. In this algorithm the recursive programs are classified into two cases; the determined programs and the undetermined programs according to the conditions of the variables in the program. The unification process is transformed into a set of assignment and conditional statements by analyzing the variables of the rules in the program. Backtracking is accomplished by a traversal of a tree whose nodes contain predicates instantiated.

Original languageEnglish (US)
Title of host publicationProceedings of the15th Annual International Computer Software and Applications Conference, CMPSAC 1991
PublisherIEEE Computer Society
Pages281-287
Number of pages7
ISBN (Electronic)0818621524
DOIs
StatePublished - 1991
Event15th Annual International Computer Software and Applications Conference, CMPSAC 1991 - Tokyo, Japan
Duration: Sep 11 1991Sep 13 1991

Publication series

NameProceedings - International Computer Software and Applications Conference
ISSN (Print)0730-3157

Conference

Conference15th Annual International Computer Software and Applications Conference, CMPSAC 1991
Country/TerritoryJapan
CityTokyo
Period9/11/919/13/91

Keywords

  • List constructor
  • Mutual recursive programs
  • Procedural languages
  • Prolog compilation
  • Software specification language

ASJC Scopus subject areas

  • Software
  • Computer Science Applications

Fingerprint

Dive into the research topics of 'Compiling recursive Prolog programs with list structure into procedural languages'. Together they form a unique fingerprint.

Cite this