Treating predicate logic as both a specification language and a programming language, firstorder logical deduction is shown to be sufficient for verifying, synthesizing, and transforming programs KEY WORDS AND PHRASES program transformation, program verification, program synthesis, computational logic, logic programming CR CATEGORXES 4.22, 5 21, 5 24 IntroducttonLogic programming refers to the use of logic as a procedural programming language and was first developed by Kowalski [9]. Its computational features can be explained informally without referring to logical concepts and can be taught easily to programmers already familiar with conventional languages. However, the theory of logic programs and their computations can be formalized in terms of the theory of resolution proof procedures, and, in fact, our present implementations of logic interpreters directly reflect this. The first such interpreter (Prolog) was developed in 1972 by Colmerauer, Roussel, and others at the University of Aix-Marseille and has served as a model for many other interpreters; especially notable implementations include the one at Edinburgh University developed by Warren [15] and another at the University of Waterloo. These implementations exhibit reasonable efficiency in executing nonnumerical, medium-storage programs but are less satisfactory in deahng with large-scale numerical problems. However, experience with logic interpreters spans less than a decade, and substantml improvements can be expected in the future.In this paper we present features of the metatheory of logic programs, explaining the notions of specification, correctness, and synthesis as they apply to the logic programming formalism. It is shown that the development of logic programs is simpler than for their counterparts written in conventional languages and is achievable using just first-order object-level deductions. We attribute this relative simplicity to the fact that logic programs contain no information about run-time behavior to complicate our analyses of their logical properties. The Procedural Vtew of Logic ProgramsA logic program consists of a goal together with a set of procedures. The notation and function of these constituents are explained most easily by referring to a simple
No abstract
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.