Instructional Science

, Volume 20, Issue 2–3, pp 193–214 | Cite as

An overview of Prolog debugging tools

  • Paul Brna
  • Mike Brayshaw
  • Alan Bundy
  • Mark Elsom-Cook
  • Pat Fung
  • Tony Dodd


In this paper we present an overview of the advances in debugging standard Prolog programs. The analysis offered is in terms of a classification of tools that provide different degrees of activity in the debugging process. Other possible dimensions of analysis are also outlined.


Prolog Program Debug Tool Debug Process 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Anderson, J. R. (1983). The archltecture of cognition. Cambridge, MA: Harvard University Press.Google Scholar
  2. Anderson, J. R., Farrell, R. and Sauers, R. (1984). Learning to program in LISP. Cognitive Science, 8 (2), 87–129.Google Scholar
  3. Anderson, J. R., Farrell, R. and Sauers, R. (1986). The automated tutoring of introductory computer programming. Communications of the ACM, 29(9), 842–84.Google Scholar
  4. Anderson, J. R., Corbett, A. T. and Reiser, B. J. (1987). Essential LISP. Reading, MA: Addison Wesley.Google Scholar
  5. Bowen, D. L. (Ed.) (1981). DECSystem-10 Prolog user's manual. Department of Artificial Intelligence, University of Edinburgh. Available as Occasional Paper No 27.Google Scholar
  6. Brna, P., Bundy, A., Pain, H. and Lynch, L. (1987). Programming tools for Prolog environments. In J. Hallam and C. Mellish (Eds.), Advances in Artificial Intelligence, pp. 251–264. Society for the Study of Artificial Intelligence and Simulation of Behaviour, John Wiley and Sons. Previously, DAI Research Paper No 302.Google Scholar
  7. Brna, P., Bundy, A., Dodd, T., Eisenstadt, M., Looi, C. K., Pain, H., Robertson, D., Smith, B. and van Someren, M. W. (1991). Prolog programming techniques. Instructional Science, this issue.Google Scholar
  8. Bundy, A., Pain, H., Brna, P. and Lynch, L. (1985). A proposed Prolog story. Research Paper 283, Department of Artificial Intelligence, University of Edinburgh.Google Scholar
  9. Bundy, A., Grosse, G. and Brna, P. (1991). A recursive techniques editor for Prolog. Instructional Science, this issue.Google Scholar
  10. Byrd, L. (1980). Understanding the control flow of PROLOG programs. In S.-A. Tamlund (Ed.), Proceedings of the Logic Programming Workshop, pp. 127–138. Available from University of Edinburgh as Research Paper 151.Google Scholar
  11. Dershowitz, N. and Lee, Y. (1987). Deductive debugging. In Computer Society Press of the IEEE, (Ed.), Proceedings of the 1987 Logic Programming Symposium, pp. 298–306. IEEE, San Francisco.Google Scholar
  12. Dewar, A. D. and Cleary, J. G. (1986). Graphical display of complex information within a Prolog debugger. International Journal of Man-Machine Studies, 25, 503–511.Google Scholar
  13. Drabent, W., Nadjm-Tehrani, S. and Maluszynski, J. (1988). Algorithmic debugging with assertions. In J. W. Lloyd (Ed.), Proceedings of the Workshop on Meta Programming in Logic Programming, pp. 365–378, Bristol.Google Scholar
  14. du Boulay, J. B. H., O'Shea, T. and Monk, J. (1981). The black box inside the glass box: presenting computing concepts to novices. International Journal of Man-Machine Studies, 14, 237–249.Google Scholar
  15. Eisenstadt, M. and Brayshaw, M. (1988). The Transparent Prolog Machine (TPM): an exection model and graphical debugger for logic programming. Journal of Logic Programming, 5 (4), 277–342.Google Scholar
  16. Eisenstadt, M. and Brayshaw, M. (1988). An integrated textbook, video, and software environment for novice and expert Prolog programmers. In E. Soloway and J. Spohrer (Eds.), Studying the novice programmer, Hillsdale, NJ: Lawrence Erlbaum Associates.Google Scholar
  17. Eisenstadt, M. and Brayshaw, M. (1990). A fine-grained accout of Prolog execution for teaching and debugging. Instructional Science, 19(4/5), 407–436.Google Scholar
  18. Eisenstadt, M. (1985). A powerful Prolog trace package. In T. O'Shea, (Ed.), ECAI-84: Advances in Artificial Intelligence. Amsterdam: Elsevier Science Publishers.Google Scholar
  19. Eisenstadt, M. (1985). Retrospective zooming: a knowledge-based tracking and debugging methodology for logic programming. In A. Joshi (Ed.), Proceedings of the 9th International Joint Conference on Artificial Intelligence. Los Altos, CA: Morgan Kaufmann.Google Scholar
  20. Eisenstadt, M. (Ed.) (1988). Intensive Prolog. Associate Student Office (Course PD622). Milton Keynes, U. K.: The Open University Press.Google Scholar
  21. Fung, P. (1988). A formalisation of novices' Prolog errors. CITE Report, Centre for Information Technology in Education, Institute for Educational Technology, The Open University, Milton Keynes, U. K.Google Scholar
  22. Fung, P., Brayshaw, M., du Boulay, B. and Elsom-Cook, M. (1990). Towards a taxonomy of novices' misconceptions of the Prolog interpreter. Instructional Science, 19(4/5), 311–336.Google Scholar
  23. Gilmore, D. J. and Green, T. R. (1988). Programming plans and programming expertise. Quarterly Journal of Experimental Psychology, 40, 423–442.Google Scholar
  24. Johnson, W. L. and Soloway, E. (1985). PROUST: knowledge-based program understanding. IEEE Transactions of Software Engineering, SE 11(3), 267–275.Google Scholar
  25. Johnson, W. L. (1986). Intention-based debugging of novice programming errors. London: Pitman.Google Scholar
  26. Lloyd, J. W. (1986). Declarative error diagnosis. Technical Report 86/3, Department of Computer Science, University of Melbourme.Google Scholar
  27. Looi, C. K. (1991). Automatic debugging of Prolog programs in a Prolog Intelligent Tutoring System. Instructional Science, this issue.Google Scholar
  28. Milner, R. (1980). A calculus of communication systems (Volume 92). Heidelberg: Springer-Verlag.Google Scholar
  29. Mycroft, A. and O'Keefe, R. A. (August 1984). A polymorphic type system for Prolog. Artificial Intelligence, 23(3), 295–307. Earlier version available from University of Edinburgh as Research Paper 211.Google Scholar
  30. Pain, H. and Bundy, A. (1987). What stories should we tell novice PROLOG programmers. In R. Hawley (Ed.), Artificial Intelligence programming environments. Chichester: Ellis Horwood. Also available as Research Paper 269, Department of Artificial Intelligence, University of Edinburgh.Google Scholar
  31. Pereira, L. M. (1986). Rational debugging in logic programming. In E. Shapiro (Ed.), Third International Conference on Logic Programming, pp. 203–210. Lecture Notes in Computer Science No. 225. Berlin: Springer Verlag.Google Scholar
  32. Plummer, D. (1988). Coda: an extended debugger for PROLOG. In R. A. Kowalski and K. A. Bower (Eds.), Logic Programming: Proceedings of the Fifth International Conference and Symposium, pp. 496–511. Cambridge, MA: MIT Press.Google Scholar
  33. Rajan, T. (1986). APT: a principled design for an animated view of program execution for novice programmers. Technical Report 19, Human Cognition Research Laboratory, The Open University, Milton Keynes, U. K.Google Scholar
  34. Rajan, T. (1987). APT: a principled design for an animated view of program execution for novice programmers. In H. J. Bullinger and B. Shackel (Eds.), Human-Computer Interaction, INTERACT'87. Amsterdam: Elsevier Science Publishers B. V. (North Holland).Google Scholar
  35. Rajan, T. (1990). Principles for the design of dynamic tracing environments for novice programmers. Instructional Science, 19(4/5), 377–406.Google Scholar
  36. Rajan, T. (1991). An evaluation of APT: an animated program tracer for novice programmers. Instructional Science, this issue.Google Scholar
  37. Rich, C. and Waters, R. C. (Eds.), (1986). Readings in Artificial Intelligence and Software Engineering. Los Altos, California: Morgan Kaufmann.Google Scholar
  38. Rich, C. (1981). Inspection methods in programming. Artificial Intelligence Laboratory Technical Report AI-TR-604, MIT Artificial Intelligence Laboratory.Google Scholar
  39. Ross, P. (1987). Some thoughts on the design of an intelligent teaching system for Prolog. AISB Quarterly, Summer(62).Google Scholar
  40. Shapiro, E. Y. (1983). Algorithmic program debugging.Cambridge, MA: MIT Press.Google Scholar
  41. Spohrer, J. C., Soloway, E. and Pope, E. (1985). A goal-plan analysis of buggy Pascal programs. Human-Computer Interaction, 1,163–207.Google Scholar
  42. Stevens, A., Collins, A. and Goldin, S. E. (1982). Misconceptions in students' understanding. In D. H. Sleeman and J. S. Brown (Eds.), Intelligent Tutoring Systems, pp. 13–49. London: Academic Press.Google Scholar
  43. Taylor, J. (1990). Analysing novices analysing Prolog: what stories do novices tell themselves about Prolog? Instructional Science, 19(4/5), 311–309.Google Scholar
  44. van Emden, M. H. (1984). An interpreting algorithm for Prolog programs. In J. Campbell (Ed.), Implementations of Prolog. Chichester: Ellis Horwood.Google Scholar
  45. Waters, R. C. (1985). The Programmer's Apprentice: a session with KBEmacs. Transactions on Software Engineering, SE-11(11).Google Scholar

Copyright information

© Kluwer Academic Publishers 1991

Authors and Affiliations

  • Paul Brna
    • 1
  • Mike Brayshaw
    • 2
  • Alan Bundy
    • 1
  • Mark Elsom-Cook
    • 3
  • Pat Fung
    • 3
  • Tony Dodd
    • 4
  1. 1.Department of Artificial IntelligenceUniversity of EdinburghEdinburghU.K.
  2. 2.Human Cognition Research LaboratoryThe Open UniversityMilton KeynesU.K.
  3. 3.Institute of Educational TechnologyThe Open UniversityMilton KeynesU.K.
  4. 4.Expert Systems InternationalOxfordU.K.

Personalised recommendations