| OCR Text |
Show 80 It uses oriented equations and employs a superposition rule. The completeness of the algorithm is a direct result of a new theorem proving method formalized and proved to be complete in [32]. The operational semantics defined employs an unrestricted paramodulation rule based on oriented equations. We consider this system as being at too "high" a level to be a programming language, while this work has theoretical merits. To summarize the above discussion, there is a need to formalize a computational model that incorporates equality and, moreover, which is "close r" to a programming language than to theorem proving. In other words, the operational semantics should not only be complete with respect to the formal semantics, but should also enable a relatively efficient implementation. Besides the efforts to provide a functional notation and an equality-based reasoning ability in logic programming, there are efforts that attempt to extend the expressive power of functional programming languages, so that some programming features, initially solely enjoyed by Prolog, can also be provided in the functional programming paradigm. Functional languages have traditionally used varieties of the notion of reduction as their operational semantics: replacing equals by equals for ground terms. A common theme of various recent extensions has been to use a more general replacement mechanism -- narrowing or restricted narrowing. Recall that the difference between narrowing and reduction is in the way two terms are matched; reduction uses one-way unification {also called matching) while narrowing exploits the full power of {two-way) unification. Perhaps Bandes was among the first people who realized that the reduction mechanism was incapable of capturing the full semantics of equational specifications. A mechanism, called constraining-unification was then proposed [2, 3]. The idea of viewing computations as constraint activities among entities or "devices/1 can be traced back to the work on constraint programming [8, 112]. Constraint programming is like logic programming in that it generates solutions by so/vi ng. Constraint programming, however, appears to be more of an engineering art than a rigorously based science at present. Dershowitz in- |