Protrace: Effective Recursion Tracing and Debugging Library for Functional Programming Style in Common Lisp

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6114)


Among programming styles the functional one has gained an increasing attention in the recent years. Lisp dialects and Common Lisp in particular have always been languages of choice for artificial intelligence systems implementation. Debugging functional algorithms based in the natural way on recursion and immutability is especially hard. This article presents a library that allows the programmer to mark and trace Common Lisp expressions evaluation.


Functional Programming Common Lisp Artificial Intelligence Debugging 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Turing, A.M.: On computable numbers, with an application to the Entscheidungsproblem. Proceedings of the London Mathematical Society 42(2) (1936)Google Scholar
  2. 2.
    Church, A.: A set of postulates for the foundation of logic. Annals of Mathematics, Series 2, 33, 346–366 (1932)CrossRefMathSciNetGoogle Scholar
  3. 3.
    Backus, J.: Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs. ACM Turing Award Lecture (1977); Communications of the ACM 2 (August 1978)Google Scholar
  4. 4.
    Hudak, P.: Conception, Evolution, and Application of Functional Programming Languages. ACM Computing Surveys 21(3) (September 1989)Google Scholar
  5. 5.
    Peyton Johnes, S.L.: The Implementation of Functional Programming Language. Prentice Hall International (UK) Ltd., Englewood Cliffs (1987)Google Scholar
  6. 6.
    Okasaki, C.: Purely Functional Data Structures. PhD thesis submitted to School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 (1996)Google Scholar
  7. 7.
    Bagwell, P.: Ideal Hash Trees. Es Grands Champs 1195 (2001)Google Scholar
  8. 8.
    McCarthy, J.: Recursive Functions of Symbolic Expressions and Their Computation by Machine. CACM 3(4), 184–195 (1960)zbMATHMathSciNetGoogle Scholar
  9. 9.
    Abelson, H., Sussman, G.J.: Structure and Interpretation of Computer Programs. MIT Press, Cambridge (1984), ISBN 0-262-01077-1Google Scholar
  10. 10.
    Russel, S.J., Norvig, P.: Artificial Intelligence A Modern Approach, 2nd edn. Pearson Education Inc., Upper Saddle River (2003)Google Scholar
  11. 11.
    Norvig, P.: Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp. Morgan Kaufmann, San Francisco (1991)Google Scholar
  12. 12.
    Seibel, P.: Coders at Work, 1st edn. Apress (September 16, 2009)Google Scholar
  13. 13.
    Seibel, P.: Practical Common Lisp, 1st edn. Apress (April 11, 2005),,
  14. 14.
    Steele, G.L.: Common Lisp the Language, 2nd edn. Digital Press (1990), ISBN 1-55558-041-6,
  15. 15.
    Graham, P.: On Lisp - Advanced Techniques for Common Lisp. Prentice-Hall, Englewood Cliffs (1993)Google Scholar
  16. 16.
    Graham, P.: ANSI Common Lisp. Series in Artificial Intelligence. Prentice-Hall, Englewood Cliffs (1996)zbMATHGoogle Scholar
  17. 17.
    Steel Bank Common Lisp Website,
  18. 18.
    Clojure Website,
  19. 19.
    Halloway, S.: Programming Clojure. The Pragmatic Bookshelf (May 2009), ISBN: 978-1-93435-633-3Google Scholar
  20. 20.
    Ferrand, G.: Error Diagnosis in Logic Programming, an Adaptation of E. Y. Shapiro’s Method. Journal of Logic Programming 4(3), 177–198 (1987)zbMATHCrossRefMathSciNetGoogle Scholar
  21. 21.
    Nilsson, H.: Tracing piece by piece: affordable debugging for lazy functional languages. In: Proceedings of the 1999 ACM SIGPLAN Int’l Conf. on Functional Programming, pp. 36–47. ACM Press, New York (1999)CrossRefGoogle Scholar
  22. 22.

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  1. 1.IT InstituteAcademy of Management (SWSPiZ)Lodz

Personalised recommendations