@inproceedings{fafc70d706754cd2b85a22a26f9e6063,
title = "Compiling recursive Prolog programs with list structure into procedural languages",
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.",
keywords = "List constructor, Mutual recursive programs, Procedural languages, Prolog compilation, Software specification language",
author = "Nam, {Young K.} and Henschen, {Lawrence Joseph}",
year = "1991",
month = jan,
day = "1",
doi = "10.1109/CMPSAC.1991.170190",
language = "English (US)",
series = "Proceedings - International Computer Software and Applications Conference",
publisher = "IEEE Computer Society",
pages = "281--287",
booktitle = "Proceedings of the15th Annual International Computer Software and Applications Conference, CMPSAC 1991",
address = "United States",
note = "15th Annual International Computer Software and Applications Conference, CMPSAC 1991 ; Conference date: 11-09-1991 Through 13-09-1991",
}