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. |