Modularity in Logic Programming

Abstract The research on modular logic programming has evolved along two different directions during the past decade. Various papers have focused primarily on the problems of programming-in-the-large. They have proposed module systems equipped with compositional operators for building programs as combinations of separate and independent components. Other proposals have instead concentrated on the problem of programming-in-the-small in an attempt to enrich logic programming with abstraction and scoping mechanisms available in other programming paradigms. The issues that arise in the two approaches are substantially different. The compositional operators of the former allow one to structure programs without any need to extend the theory of Horn clauses. The scoping and abstraction mechanisms of the latter are modeled in terms of the logical connectives of extended logic languages. In this paper we provide a uniform reconstruction of the above approaches and we show, wherever this is possible, how the object-level logical connectives of the latter can be mapped onto the compositional operators of the former.

[1]  Uday S. Reddy,et al.  Objects as closures: abstract semantics of object-oriented languages , 1988, LISP and Functional Programming.

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

[3]  Hervé Gallaire Merging Objects and Logic Programming: Relational Semantics , 1986, AAAI.

[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]  Evelina Lamma,et al.  Inheritance and Hypothetical Reasoning in Logic Programming , 1990, European Conference on Artificial Intelligence.

[7]  Albert R. Meyer,et al.  Semantical paradigms: notes for an invited lecture , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[8]  Evelina Lamma,et al.  Composing Open Logic Programs , 1993, J. Log. Comput..

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

[10]  Antonio Brogi,et al.  Meta for Modularising Logic Programming , 1992, META.

[11]  Dale Miller,et al.  Representing Objects in a Logic Programming Langueage with Scoping Constructs , 1990, ICLP.

[12]  Akikazu Takeuchi,et al.  MANDELA: A LogicBased Knowledge Programming System , 1984, FGCS.

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

[14]  Gopalan Nadathur,et al.  Scoping Constructs in Logic Programming: Implementation Problems and their Solutions , 1995, J. Log. Program..

[15]  Gopalan Nadathur,et al.  Implementing a Notion of Modules in the Logic Programming Language Lambda-Prolog , 1992, ELP.

[16]  Dale A. Miller,et al.  AN OVERVIEW OF PROLOG , 1988 .

[17]  Frank Pfenning,et al.  A Semi-Functional Implementation of a Higher-Order Logic Programming Language , 1990 .

[18]  David Scott Warren,et al.  C-logic of complex objects , 1989, PODS '89.

[19]  L. Thorne McCarty,et al.  Expressing Database Queries with Intuitionistic Logic , 1989, NACLP.

[20]  Michael Kifer,et al.  F-logic: a higher-order language for reasoning about objects, inheritance, and scheme , 1989, SIGMOD '89.

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

[22]  Dale Miller,et al.  Lexical Scoping as Universal Quantification , 1989, ICLP.

[23]  Laura Giordano,et al.  Local Definitions with Static Scope Rules in Logic Programming , 1988, FGCS.

[24]  Evelina Lamma,et al.  An Extended Warren Abstract Machine for the Execution of Structured Logic Programs , 1992, J. Log. Program..

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

[26]  Evelina Lamma,et al.  Techniques for Implementing Contexts in Logic Programming , 1992, ELP.

[27]  Antonio Brogi,et al.  Metalogic for Knowledge Representation , 1991, KR.

[28]  Evelina Lamma,et al.  Partial Evaluation for Hierarchies of Logic Theories , 1990, NACLP.

[29]  Evelina Lamma,et al.  Objects in a Logic Programming Framework , 1990, RCLP.

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

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

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

[33]  D.M. Gabbay,et al.  N-Prolog: An Extension of Prolog with Hypothetical Implication II - Logical Foundations, and Negation as Failure , 1985, J. Log. Program..

[34]  Dale Miller,et al.  Abstract Syntax and Logic Programming , 1990, RCLP.

[35]  Constantin Halatsis,et al.  A versatile module system for Prolog mapped to flat prolog , 1993, SAC '93.

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

[37]  Gopalan Nadathur,et al.  Uniform Proofs as a Foundation for Logic Programming , 1991, Ann. Pure Appl. Log..

[38]  Ronald Harrop,et al.  Concerning formulas of the types A→B ν C,A →(Ex)B(x) in intuitionistic formal systems , 1960, Journal of Symbolic Logic.

[39]  Paola Mello,et al.  Objects as Communicating Prolog Units , 1987, ECOOP.

[40]  Laura Giordano,et al.  A Modal Reconstruction of Blocks and Modules in Logic Programming , 1991, ISLP.

[41]  David Scott Warren,et al.  Objects as Intensions , 1988, ICLP/SLP.

[42]  Gopalan Nadathur,et al.  Implementing a Notion of Modules in the Logic Programming Language Prolog Implementing a Notion of Modules in the Logic Programming Language Prolog , 1993 .

[43]  P. Mello Inheritance as combination of horn clause theories , 1991 .

[44]  Hassan Aït-Kaci Warren's Abstract Machine , 1991, ICLP.

[45]  Robert A. Kowalski,et al.  The Semantics of Predicate Logic as a Programming Language , 1976, JACM.

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

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

[48]  Michael J. Maher Equivalences of Logic Programs , 1988, Foundations of Deductive Databases and Logic Programming..

[49]  Evelina Lamma,et al.  The Design of an Abstract Machine for Efficient Implementation of Contexts in Logic Programming , 1989, International Conference on Logic Programming.

[50]  L. Thorne McCarty,et al.  Clausal Intuitionistic Logic I - Fixed-Point Semantics , 1988, J. Log. Program..

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

[52]  M. Fitting Intuitionistic logic, model theory and forcing , 1969 .

[53]  D. Pedreschi,et al.  Composition Operators for Logic Theories , 1990 .

[54]  Max J. Cresswell,et al.  A New Introduction to Modal Logic , 1998 .

[55]  Patricia M. Hill,et al.  A Parameterised Module System for Constructing Typed Logic Programs , 1993, IJCAI.

[56]  John W. Lloyd,et al.  The Gödel programming language , 1994 .

[57]  Dale Miller,et al.  A Theory of Modules for Logic Programming , 1986, SLP.

[58]  Ronald Harrop Concerning Formulas of the Types A ->B V C, A -< (Ex)B(x) , 1960, J. Symb. Log..

[59]  Koichi Fukunaga,et al.  An experience with a Prolog-based object-oriented language , 1986, OOPLSA '86.

[60]  Luís Monteiro,et al.  Syntactic and Semantic Inheritance in Logic Programming , 1991, Declarative Programming.

[61]  Saul A. Kripke,et al.  Semantical Analysis of Intuitionistic Logic I , 1965 .

[62]  Hamid Bacha,et al.  MetaProlog Design and Implementation , 1988 .

[63]  L. Thorne McCarty,et al.  Clausal Intuitionistic Logic II - Tableau Proof Procedures , 1988, J. Log. Program..

[64]  Evelina Lamma,et al.  Partial Deduction for Structured Logic Programming , 1993, J. Log. Program..

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

[66]  Dale Miller,et al.  Logic Programming in a Fragment of Intuitionistic Linear Logic , 1994, Inf. Comput..

[67]  Robert A. Kowalski,et al.  Amalgamating language and metalanguage in logic programming , 1982 .

[68]  Melvin Fitting Enumeration Operators and Modular Logic Programming , 1987, J. Log. Program..

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

[70]  Michele Bugliesi,et al.  On the Semantics of Inheritance in Logic Programming: Compositionality and Full Abstraction , 1992, ELP.

[71]  Dale Miller,et al.  Unification Under a Mixed Prefix , 1992, J. Symb. Comput..

[72]  Maurizio Gabbrielli,et al.  Observational Equivalences for Logic Programs , 1992, Joint International Conference and Symposium on Logic Programming.

[73]  Krzysztof R. Apt,et al.  Contributions to the Theory of Logic Programming , 1982, JACM.

[74]  Gopalan Nadathur,et al.  Implementation Techniques for Scoping Constructs in Logic Programming , 1991, ICLP.

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

[76]  John S. Conery,et al.  Logical Objects , 1988, ICLP/SLP.

[77]  Dov M. Gabbay,et al.  N-Prolog: An Extension of Prolog with Hypothetical Implications I , 1984, J. Log. Program..

[78]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.