Differential Logic Programs: Programming Methodologies and Semantics

Abstract We introduce the notion of differential logic programs and we define an operator for composing them in a hierarchical fashion. The semantics of this composition operator is reminiscent of the semantics of inheritance in the object oriented paradigm. Similar to classes in that paradigm, differential programs can be organized in isa schemas where each component inherits or redefines, modifying them, the predicates defined in the components that are placed higher up in the schema. We demonstrate the use of this form of composition as a programming methodology that enhances reusability, code sharing and information hiding. We define a proof theory and a model theory for the composition of differential programs and we prove that the two theories coincide. We also define a compositional and fully abstract semantics for differential programs and we address the importance of this semantics as a formal tool for reasoning on the computational properties of differential programs and their composition. A preliminary version of this paper appeared in Bossi et al. (1993)

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

[2]  Hassan Aït-Kaci,et al.  LOGIN: A Logic Programming Language with Built-In Inheritance , 1986, J. Log. Program..

[3]  Dirk Vermeir,et al.  A Fixpoint Semantics for Ordered Logic , 1990, J. Log. Comput..

[4]  Francis G. McCabe,et al.  Logic and objects , 1992, Prentice Hall International Series in Computer Science.

[5]  Luís Monteiro,et al.  A Transformational View of Inheritance in Logic Programming , 1990, ICLP.

[6]  Michele Bugliesi,et al.  A Declarative View of Inheritance in Logic Programming , 1992, JICSLP.

[7]  Luís Monteiro,et al.  Contextual Logic Programming , 1989, ICLP.

[8]  PadovaVia,et al.  Diierential Logic Programming , 1993 .

[9]  Krzysztof R. Apt,et al.  Logic Programming Languages: Constraints, Functions, and Objects , 1993 .

[10]  Richard A. O'Keefe,et al.  Towards an Algebra for Constructing Logic Programs , 1985, International Conference on Spoken Language Processing.

[11]  Paolo Mancarella,et al.  An Algebra of Logic Programs , 1988, ICLP/SLP.

[12]  Laura Giordano,et al.  Extending Horn Clause Logic with Implication Goals , 1992, Theor. Comput. Sci..

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

[14]  Paola Mello,et al.  Logic Programming in a Software Engineering Perspective , 1989, NACLP.

[15]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[16]  Jan van Leeuwen,et al.  Handbook of Theoretical Computer Science, Vol. B: Formal Models and Semantics , 1994 .

[17]  Michael Kifer,et al.  Logical foundations of object-oriented and frame-based languages , 1995, JACM.

[18]  Wolfgang Thomas,et al.  Handbook of Theoretical Computer Science, Volume B: Formal Models and Semantics , 1990 .

[19]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[20]  Gillian Dobbie A Model for Inheritance and Overriding in Deductive Object-oriented Systems , 1993 .

[21]  Michele Bugliesi,et al.  Differential logic programming , 1993, POPL '93.

[22]  Walter F. Tichy,et al.  Implementation and evaluation of a revision control system , 1982 .

[23]  David S. Touretzky,et al.  The Mathematics of Inheritance Systems , 1984 .

[24]  Michael J. Maher,et al.  Closures and Fairness in the Semantics of Programming Logic , 1984, Theor. Comput. Sci..

[25]  Antonio Brogi,et al.  Modular logic programming , 1994, TOPL.

[26]  Maurizio Gabbrielli,et al.  A Compositional Semantics for Logic Programs , 1994, Theor. Comput. Sci..

[27]  Andreas Podelski,et al.  Towards a Meaning of LIFE , 1991, J. Log. Program..

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

[29]  Krzysztof R. Apt,et al.  Logic Programming , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[30]  Laura Giordano,et al.  A Multimodal Logic to Define Modules in Logic Programming , 1993, ILPS.

[31]  Luís Monteiro,et al.  A language for contextual logic programming , 1993 .

[32]  Andreas Podelski,et al.  Towards a Meaning of LIFE , 1991, PLILP.

[33]  Dale Miller,et al.  A Logical Analysis of Modules in Logic Programming , 1989, J. Log. Program..

[34]  Haim Gaifman,et al.  Fully abstract compositional semantics for logic programs , 1989, POPL '89.

[35]  Krzysztof R. Apt,et al.  Introduction to Logic Programming , 1988 .