Abstract
We describe a practical and enhanced implementation of a graphical Prolog tracer which not only provides a faithful (slow-motion) representation of the inner workings of the Prolog interpreter, but also allows a high-speed visual overview of execution for rapidly homing in on buggy code. The current work extends our original “Transparent Prolog Machine” in the following ways: (a) complex unification histories for given variables can be displayed; (b) cross-variable dependencies (sharing) across widely-dispersed sections of code can be highlighted; (c) an earlier defect, wherein a given user could write code which defeated the speed/size of the current fastest/largest display capability (i.e. a “horizon effect”) is dealt with; (d) users of textual (Byrd Box) tracers are provided with an upward-compatible migration pathway; (e) code can be traced either “live” or “retrospectively” at different grains of detail. We distinguish among four different ways of manipulating the “navigational space” produced by large Prolog programs: (a) by granularity, i.e. coarse-grained vs fine-grained; (b) by scale, i.e. close-up vs far away; (c) by compression, i.e. the use of a single compact display region or symbol to indicate “additional territory”, at the same granularity and scale; (d) by abstraction, i.e. a movement away from the raw Prolog code and towards a representation closer to the programmer's own plans and intentions. The paper includes detailed examples of the tracer in action.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.