Towards Generalized Visualization Support for Logic Programming

David Scott Warren · 1993

WAND is a general design for graphics-based visualization systems for logic programming. These systems are to facilitate the rapid development of tajbred visual tracers and debuggers, yet be language independent. Under the design, a specific program monitoring tool is realized from four components: a generic, stand-alone GUI program or tool, a meta-interpreter (or equivalent) providing “raw” trace data, a transformation specification mapping trace information into updates to the tool's database, and a configuration specification controlling the content and form of the information displayed. The latter three components are developer supplied. They are easily modified to tailor the models of both execution and visualization, and the capabilities provided to a user. A specific instance of the WAND design, GLP, has been completed. GLP utilizes a macro-based transformation language and implements a functional configuration specification language. GLP is written in the C programming language, and runs under the X-Windows system. Using GLP, individual tracers providing OR-tree, AND-tree, and AND/OR-tree views (models) of a Prolog computation have been realized. A successor to GLP is tinder development. It is being implemented using Prolog with graphics extensions. This new system uses a constraint-based picture description grammar for configuration specification. To support the grammar, a constraint-based declarative graphics language has been devised and implemented. With this graphics language, the contents of a display (picture) are specified by declarations of the objects in that picture, their attributes, and the positional relationships among them. The latter information is in the form of constraints. ICOLA, an engine able to process tins declarative graphics language, has been designed and implemented. It's constraint solver is implemented in C. This presentation describes the overall WAND design, as well as GLP, the tracing tools realized using GLP, and ICOLA. Highlights include: 1) the WAND design maximizes flexibility and power, while minimizing complexity and programming effort; 2) basic graphical constructs of GLP such as “sticky note” and “toggle” demonstrate superb utility and applicability; 3) the three working execution tracers for Prolog verify the ease of tailorability in the WAND design and GLP; and 4) ICOLA implements an efficient engine for an expressive, constraint-based declarative graphics language.

Read the paper · More papers on PaperTik