Conclusions

Distributed logic programming has been introduced as a means to specify the functionality of an object oriented system in a high-level (logic-based) formalism, preserving the structure of the original problem. The specification given may also be used as a prototype of the system. Hopefully, the use of DLP as a design and prototyping tool has been clearly demonstrated by the example presented in previous section. Currently, there exists only a rather inefficient prototype implementation of DLP. See  [Eliens91].\ftn{ The prototype has been implemented in a variant of the language described in  [Am87]. Recently, research to (re) implement DLP in a concurrent extension of C++ has been started. } Not included in the prototype implementation of DLP, but certainly needed when actually using DLP as a design/prototyping tool is a suitable programming environment and documentation support. Finally, I would like to stress that DLP and for that matter any programming formalism, has its inherent limitations as a tool to design complex (object oriented) systems. As observed in  [Ho87], the restrictions that must be adhered to in order to have an executable specification may be too severe to make the specification of any use for conceptually understanding the design or the requirements a design must meet. In these cases a precise mathematical description or an informal description may well augment the design as laid down in the executable specification.