C o m p u t a t i o n a l    L o g i c

Logic-Based Composition of Logic Languages


 

Logic-Based Composition of Logic Languages

A post-conference of ICLP'97

Patricia Hill and Antonio Brogi

It has been shown that logic programming can provide a good theoretical and practical basis for the design of program composition tools for constructing large software systems. Facilities for software composition are essential for the development of large-scale software, distributed computing, reuse of legacy systems, and so on. Such applications require solid foundations in theory together with practical experiments using non-trivial applications. In order to bring together researchers working on these problems, stimulating discussion on current work and encouraging further development in the field, we organized this post-conference workshop at ICLP'97.

Seventeen people participated in the workshop and six papers were presented. This was achieved in spite of competition from other workshops on related themes and the LOPSTR conference which was held in parallel with the workshops.

The six papers all addressed the issues of program composition and modularity but from different perspectives. A logically sound basis to the work is vital and theoretical issues were explored in two of the papers. Verbaeten, Denecker and De Schreye proposed a compositional semantics for logic programming with negation. The paper they presented generalises the well-founded semantics to allow for incomplete knowledge. Different aspects of reuse and composition of modules when viewed as first order theories were discussed by Lau and Ornaghi. This approach is used by them to provide a logical basis for formal program development in an object-oriented fashion.

The logic programming paradigm needs to be extended so as to include facilities for program composition. This is the first but essential step in linking the theory to its practical realisation for large applications. Two papers proposed different language extensions for component-based software development. Hill described the design and implementation of a practical but generic module system for typed languages which is implemented as an extension of the existing Godel sysem. Brogi, Renso and Turini presented a logic-based language that supports meta-level operations for composing parameterised object programs. Several programming examples were discussed that illustrate the expressive power of the language. Moreover, a third paper concerned with languages but aiming at the representation of the design and implementation of logic programs was presented by Laemmel. He explained how a meta-programming language could be used to express a calculus for program specification and composition.

Combining different and independently compiled pieces of code is central to software engineering for any kind of system, but in the case of distributed and parallel systems it is specially relevant, since they normally present reactive behaviours. Diaz, Rubio and Troya presented a new coordination model that will allow distributed programming to be developed in a compositional way. This model generalises the notion of shared logic variable of Concurrent Logic Languages's and supports multiparadigm and multilingual integration.

We have made all the papers available on the internet at http://www.scs.leeds.ac.uk/hill/locos.htmly. In view of the support and interest shown, not only from those attending the workshop but also others who were unable to be there, a second workshop based on this theme is being planned for 1998.


Coordinator's Report ] [ Logic-Based Composition of Logic Languages ] Verification, Model Checking and Abstract Interpretation ] Concurrent Constraint Programming for Time Critical Applications ] Domain Theory in Abstract Interpretation ] Verification Techniques for Logic Programming: A Short Survey ]


Home ] Automated Deduction Systems ] Computational Logic & Machine Learning ] Concurrent & Constraint Logic Programming ] Language Design, Semantics & Verification Methods ] Logic Based Databases ] Program Development ] Knowledge Representation & Reasoning ]