In the last few years, substantial efforts have been made towards developing equational programming languages and logic programming languages: the so-called descriptive languages. The languages of both types are based on mathematical systems and to a certain extent resemble each other. This is a clue to the possibility of program transformation from one type to the other. An equational language concerns algebraic specifications of abstract data types and recursive program schemes. Thus, the transformation may introduce the notions of data abstraction and computation strategies into logic programming languages. In this paper, we propose a transformation algorithm that transforms equational programs into logic programs. For our purpose, we have extended the programming language PROLOG, which has been widely cited in related literature as a promising language, to a logic programming language based on a new computation model. We have shown that the algorithm transforms any equational program into an equal or more powerful logic program. For a recursive equational program, there exists a Horn program with equivalent computational power. © 1987.
Togashi, A., & Noguchi, S. (1987). A program transformation from equational programs into logic programs. The Journal of Logic Programming, 4(2), 85–103. https://doi.org/10.1016/0743-1066(87)90013-6