Specifying Compositional Units for Correct Program Development in Computational Logic

In order to provide a formalism for defining program correctness and to reason about program development in Computational Logic, we believe that it is better to distinguish between specifications and programs. To this end, we have developed a general approach to specification that is based on a model-theoretic semantics. In our previous work, we have shown how to define specifications and program correctness for open logic programs. In particular we have defined a notion of correctness called steadfastness, that captures at once modularity, reusability and correctness. In this paper, we review our past work and we show how it can be used to define compositional units that can be correctly reused in modular or component-based software development.

[1]  J. W. Lloyd,et al.  Foundations of logic programming; (2nd extended ed.) , 1987 .

[2]  Dov M. Gabbay,et al.  Handbook of logic in artificial intelligence and logic programming (vol. 1) , 1993 .

[3]  Kung-Kiu Lau,et al.  Forms of Logic Specifications: A Preliminary Study , 1996, LOPSTR.

[4]  Donald Sannella,et al.  A Calculus for the Construction of Modular Prolog Programs , 1987, J. Log. Program..

[5]  Cliff B. Jones,et al.  Systematic software development using VDM (2. ed.) , 1990, Prentice Hall International Series in Computer Science.

[6]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming, 2nd Edition , 2002, Addison-Wesley component software series.

[7]  Luís Moniz Pereira,et al.  Computational Logic — CL 2000 , 2000, Lecture Notes in Computer Science.

[8]  Kung-Kiu Lau,et al.  Steadfast Logic Programs , 1999, J. Log. Program..

[9]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[10]  Bernhard Rumpe,et al.  The Amsterdam Manifesto on OCL , 2014, Object Modeling with the OCL.

[11]  Kung-Kiu Lau,et al.  Correct Object-Oriented Systems in Computational Logic , 2001, LOPSTR.

[12]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[13]  Alberto Bertoni,et al.  On the power of model theory in specifying abstract data types and in capturing their recursiveness , 1983 .

[14]  Betty H. C. Cheng,et al.  A Formal Semantics for Object Model Diagrams , 1995, IEEE Trans. Software Eng..

[15]  Egidio Astesiano,et al.  Algebraic Foundations of Systems Specification , 1999, IFIP State-of-the-Art Reports.

[16]  H. Keisler,et al.  Handbook of mathematical logic , 1977 .

[17]  Yves Deville,et al.  Logic programming - systematic program development , 1990, International series in logic programming.

[18]  Fernando Orejas,et al.  An Algebraic Framework for the Definition of Compositional Semantics of Normal Logic Programs , 1999, J. Log. Program..

[19]  T. S. E. Maibaum,et al.  Conservative Extensions, Interpretations Between Theories and All That! , 1997, TAPSOFT.

[20]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[21]  Kung-Kiu Lau,et al.  Isoinitial Semantics for Logic Programs , 2000, Computational Logic.

[22]  Donald Sannella,et al.  Toward formal development of programs from algebraic specifications: Parameterisation revisited , 1992, Acta Informatica.

[23]  J. Van Leeuwen,et al.  Handbook of theoretical computer science - Part A: Algorithms and complexity; Part B: Formal models and semantics , 1990 .

[24]  Pierre Flener,et al.  On Correct Program Schemas , 1997, LOPSTR.

[25]  Christoph Kreitz,et al.  Formal Reasoning about Modules, Reuse and their Correctness , 1996, FAPR.

[26]  Franco Turini,et al.  Logic Program Synthesis and Transformation — Meta-Programming in Logic , 1994, Lecture Notes in Computer Science.

[27]  Cliff B. Jones,et al.  Systematic Program Development , 1986 .

[28]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[29]  Yves Deville Logic programming , 1990 .

[30]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[31]  Yves Deville,et al.  Logic Program Synthesis , 1994, J. Log. Program..

[32]  Keith L. Clark Predicate logic as a computational formalism , 1979 .

[33]  Desmond D'Souza,et al.  Objects, Components, and Frameworks with UML: The Catalysis Approach , 1998 .

[34]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[35]  Wilfrid Hodges,et al.  Logical features of Horn Clauses , 1993 .

[36]  S. Griffis EDITOR , 1997, Journal of Navigation.

[37]  Jean H. Gallier,et al.  Logic for Computer Science: Foundations of Automatic Theorem Proving , 1985 .

[38]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[39]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 2 , 1990, EATCS Monographs on Theoretical Computer Science.

[40]  Joseph A. Goguen,et al.  Institutions: abstract model theory for specification and programming , 1992, JACM.

[41]  Donald Sanella What Does the Future Hold for Theoretical Computer Science , 1997 .

[42]  Pierangelo Miglioli,et al.  Abstract Parametric Classes and Abstract Data Types defined by Classical and Constructive Logical Methods , 1994, J. Symb. Comput..

[43]  Pierre Flener,et al.  An Abstract Formalization of Correct Schemas for Program Synthesis , 2000, J. Symb. Comput..

[44]  Kung-Kiu Lau,et al.  OOD Frameworks in Component-Based Software - Development in Computational Logic , 1998, LOPSTR.

[45]  Kung-Kiu Lau,et al.  Correct OO Systems in Computational Logic , 2003, LOPSTR.

[46]  Kung-Kiu Lau,et al.  On Specification Frameworks and Deductive Synthesis of Logic Programs , 1994, International Workshop/Symposium on Logic-based Program Synthesis and Transformation.

[47]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1 , 1985, EATCS Monographs on Theoretical Computer Science.

[48]  Donald Sannella,et al.  Extended ML: Past, Present, and Future , 1990, ADT.

[49]  Barbara Paech,et al.  Component-based product line engineering with UML , 2001, Addison Wesley object technology series.

[50]  Christopher J. Hogger,et al.  Derivation of Logic Programs , 1981, JACM.

[51]  Kung-Kiu Lau,et al.  The Relationship Between Logic Programs and Specifications - The Subset Example Revisited , 1997, J. Log. Program..

[52]  Tony Clark,et al.  Object Modeling with the OCL , 2002, Lecture Notes in Computer Science.

[53]  Evelina Lamma,et al.  Modularity in Logic Programming , 1994, J. Log. Program..

[54]  Hartmut Ehrig,et al.  Compositionality and compatibility of parameterization and parameter passing in specification languages , 1995, Mathematical Structures in Computer Science.

[55]  M. G. Read,et al.  Formal Program Development in Modular Prolog: A Case Study , 1991, LOPSTR.

[56]  Alan Bundy,et al.  Logic Program Synthesis via Proof Planning , 1992, LOPSTR.

[57]  Tony Clark,et al.  Object Modeling with the OCL: The Rationale behind the Object Constraint Language , 2002 .