Abstract
The main objective of this short paper is to describe the relationship between software maintenance and logic programming (both declarative and procedural), and to show how ideas and methods from logic programming (in particular, methods invented by M. Gelfond) can be used in software maintenance. The material presented in this paper partly appeared in (Luqi and Cooke, 1995). The main difference is that (Luqi and Cooke, 1995) is aimed mainly at software engineers, so it only briefly touches on the software engineering problems, while describing in great detail the basics of logic programming. In contrast, in this paper, we assume that the corresponding logic programming notions are well known, but describe the corresponding software engineering applications in greater detail.
Similar content being viewed by others
References
K. Apt and H. Blair, Arithmetic classification of perfect models of stratified programs, Fundamenta Informaticae 13 (1990) 1–18.
V.R. Basili, Viewing maintenance as reuse-oriented software development, IEEE Software 7(2) (1990) 19–25.
C. Baral and M. Gelfond, Logic programming and knowledge representation, Journal of Logic Programming 19 (1994) 73–148.
D. Cooke, A. Gates, E. Demirors, O. Demirors, M. Tanik and B. Kraemer, Languages for the specification of software, Journal of Systems and Software 32 (1996) 269–308.
A.M. Davis, A comparison of techniques for the specification of external system behavior, Communications of ACM 31(9) (1988) 1098–1115.
M. Gelfond and V. Lifschitz, The stable model semantics for logic programming, in: Proc. 5th International Conference and Symposium on Logic Programming, Seattle, Washington (August 15–19, 1988), eds. R. Kowalski and K. Bowen, pp. 1070–1080.
M. Gelfond and V. Lifschitz, Logic programs with classical negation, in: Proceedings of 7th International Conference on Logic Programming (Jerusalem, 1990) pp. 579–597.
M. Gelfond and V. Lifschitz, Classical negation in logic programs and deductive databases, Journal of New Generation Computing 9(3,4) (1991) 365–387.
M. Gelfond and H. Przymusinska, Stratified extended logic programs. Draft copy of a paper in preparation.
M. Lehman, Programs, life cycles, and laws of software evolution, Proceedings of the IEEE 68(9) (1980) 1060–1075.
Luqi and D.E. Cooke, How to combine nonmonotonic logic and rapid prototyping to help maintain software, International Journal of Software Engineering and Knowledge Engineering 5(1) (1995) 89–118.
C.V. Ramamoorthy and D. Cooke, The correspondence between methods of artificial intelligence and the production and maintenance of evolutionary software, in: Proceedings of the Third International IEEE Conference on Tools for Artificial Intelligence (November, 1991) pp. 114–118.
C.V. Ramamoorthy, D. Cooke and C. Baral, Maintaining the truth of specifications in evolutionary software, International Journal of Artificial Intelligence Tools 2(1) (1993) 15–31.
J.-P. Tsai and T. Weigert, A knowledge-based approach for checking software information using a non-monotonic reasoning system, Knowledge-Based Systems 3(3) (1990) 131–138.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Cooke, D., Luqi Logic programming and software maintenance. Annals of Mathematics and Artificial Intelligence 21, 221–229 (1997). https://doi.org/10.1023/A:1018917502968
Issue Date:
DOI: https://doi.org/10.1023/A:1018917502968