Deenite Clause Grammars for Lan- Guage Analysis | a Survey of the Formalism and a Comparison with Term Rewriting Although Term Rewriting Consists of Logical Components

RET paradigm. We plan to report on each of these aspects separately in future papers. For now, let a brief remark on each suuce. (terms, the equality relation, and a specialized form of atomic formula), and although term rewriting aims at computer executability, this eld of research has proceeded independently of logic programming. In this paper we have shown that viewing term rewriting in the context of logic programming gives a deeper theoretical foundation in combination with an expressive and standardized programming language. Not only does Prolog implement the term rewriting engine, but conditional rules also provide a natural interface to arbitrary Prolog programs. Prolog programming methodology Let us rst adduce a relevant precedent. Without DCGs a certain common programming pattern would have to be reinvented repeatedly and in a laborious fashion. This would be necessary because plain Prolog does not ooer a suuciently neat way to encapsulate and name the pattern. There are other, more complex, programming patterns that are not captured by DCGs and therefore still have to be reinvented repeatedly and in a laborious fashion. For a small example, the program in the collection 6] for constructing SLD trees is typical of a class of programs that becomes much easier and shorter when done in the RET paradigm. Here you will see that many Prolog programs explicitly implement the massaging of some construct to a canonical form. Having that built in saves a lot of minor, low-level grief. For a substantial example, Stickel's Prolog Technology Term Rewriter is quite drastically simpliied in our approach. Functional programming The tension between innermost and outer-most evaluation plays an important role in functional programming. The former is more eecient. The latter allows a higher level of programming. One would like to have innermost for simple things and reserve outermost for those cases where it is really necessary. Yet in the existing functional programming systems the choice is not available within a given implementation. We discovered an implementation that not only allows the choice from program to program, but within a program from function to function, and within a function from argument place to argument place. Regular algebra Automata theory is to be envied for an algebra that allows regular expressions to be manipulated under preservation of value with the additional bonus of an automatic implementation by translation to nite-state machine. We know of no such powers in the world of programming, …

[1]  Jan A. Bergstra,et al.  Conditional Rewrite Rules: Confluence and Termination , 1986, J. Comput. Syst. Sci..

[2]  Mantis Hoi Ming Cheng Lambda-equational logic programming , 1987 .

[3]  M. H. van Emden,et al.  On Warren's Method for Functional Programming in Logic , 1990, ICLP.

[4]  Jean-Pierre Jouannaud,et al.  Rewrite Systems , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[5]  Claude Kirchner,et al.  Solving Equations in Abstract Algebras: A Rule-Based Survey of Unification , 1991, Computational Logic - Essays in Honor of Alan Robinson.

[6]  Mantis H. M. Cheng,et al.  AP: an assertional programming system , 1992 .

[7]  Douglas Stott Parker,et al.  A Method for Implementing Equational Theories as Logic Programs , 1995, ICLP.