[comp.lang.prolog] Utilities for prolog programs development

timd@aiai.ed.ac.uk (Tim Duncan) (01/13/91)

In article <3786@cernvax.cern.ch> roberto@cernvax.cern.ch writes:
>
>Hi there,
>
>    I'm looking for some utilities for prolog programs development, and
>maybe somebody knows where I could find something appropriate.
>

All the utilities you require (and many more) are available in the
Edinburgh Prolog library (written by Richard O'Keefe, David Warren,
Laurence Byrd, and others). The library is public domain and available 
from a number of sources (eg: distributed with Quintus Prolog). We (AIAI)
can provide a copy, but there is a charge for distribution costs. For details
email AIAI@ed.ac.uk

	-- Tim

mireille@ecrc.de (Mireille Ducasse) (01/14/91)

Opium has, among many other facilities, a static checker which covers 
all the cases you are mentioning.

Opium is available for non-profit organizations together with Sepia
(ECRC's Prolog system) for a nominal fee of 300DM.

There will certainly be demos of Opium and Sepia at ICLP'91 exhibition
in Paris. Following is an abstract of the functionalities of Opium.

 -------------------------------------------------------------------------


		  OPIUM: a Debugging Environment
		
		Mireille Ducasse, Anna-Maria Emde 


Opium is an extensible debugging environment for PROLOG providing
high-level facilities for programmers and experts in debugging. 

Its basic features are PROGRAMMABILITY, EXTENSIBILITY, META-DEBUGGING
which result in a tool providing HIGH-LEVEL DEBUGGING support for both
END-USERS and DEBUGGING EXPERTS. Many DEBUGGING STRATEGIES have already
been implemented and debugging with APPLICATION ABSTRACTION is possible.


PROGRAMMABILITY.  Opium not only prints debugging information (program
source and execution trace) but also provides it as *programming data*.
This enables debugging programs to be written (in PROLOG extended by a
set of debugging primitives).


EXTENSIBILITY.  With a minimum of declarations Opium ensures that new
debugging commands are *integrated* into the system (interface, help,
manual, and some consistency checkings are added automatically).
Furthermore existing commands can be *customized* at low cost.


META-DEBUGGING.  As Opium is a separate process, a further Opium
session can be used to debug debugging programs. Thus, Opium has been
debugged using Opium !  However, Opium is *not* a meta-interpreter, it
traces *compiled* Prolog in a faithful way.


END-USERS vs DEBUGGING EXPERTS.  With Opium end-users can get accurate
debugging information, and debugging experts (researchers on debugging
but also experienced programmers) find support for the implementation
of advanced debugging strategies.


HIGH-LEVEL DEBUGGING.  Opium's debugging commands can be easily
combined, and users can specify precisely which debugging information
they want to examine.  Debugging steps are high level and fewer steps
are needed than with standard debuggers.


DEBUGGING STRATEGIES.  High-level debugging strategies are provided
(top-down zooming, endless loop analysis, static analysis, failure
tracking,...)


APPLICATION ABSTRACTION.
Programmers can provide end-users with debugging commands which trace
their application at a higher level than Prolog's execution.

---------------------------
Contact: Mireille Ducasse
European Computer-Industry Research Centre
Arabellastr 17, D-8000 Munich 81, Germany
Tel: +49 89/926 99 142
FAX: +49 89/926 99 170
email: mireille@ecrc.de

dave@quintus.UUCP (David Bowen) (01/21/91)

I must correct the statement by Tim Duncan that Quintus distributes the
public domain Edinburgh Prolog library.  That was where we started from,
but we (mainly Richard O'Keefe) have revised much of it and extended it
greatly.  We've also documented the most important parts of it, making it
a lot easier to find things.