DrScheme: A pedagogic programming environment for scheme

  • Robert Bruce Findler
  • Cormac Flanagan
  • Matthew Flatt
  • Shriram Krishnamurthi
  • Matthias Felleisen
Education: Tools and Themes
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1292)


Teaching introductory computing courses with Scheme elevates the intellectual level of the course and thus makes the subject more appealing to students with scientific interests. Unfortunately, the poor quality of the available programming environments negates many of the pedagogic advantages. To overcome this problem, we have developed DrScheme, a comprehensive programming environment for Scheme. It fully integrates a graphics-enriched editor, a multi-lingual parser that can process a hierarchy of syntactically restrictive variants of Scheme, a functional read-eval-print loop, and an algebraically sensible printer. The environment catches the typical syntactic mistakes of beginners and pinpoints the exact source location of run-time exceptions.

DrScheme also provides an algebraic stepper, a syntax checker and a static debugger. The first reduces Scheme programs, including programs with assignment and control effects, to values (and effects). The tool is useful for explaining the semantics of linguistic facilities and for studying the behavior of small programs. The syntax checker annotates programs with font and color changes based on the syntactic structure of the program. It also draws arrows on demand that point from bound to binding occurrences of identifiers. The static debugger, roughly speaking, provides a type inference system with explanatory capabilities. Preliminary experience with the environment shows that Rice University students find it helpful and that they greatly prefer it to shell- or Emacs-based systems.


Programming Environments Scheme Programming Pedagogy Algebraic Evaluation Static Debugging Teaching programming to beginning students 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abelson, H., G. J. Sussman and J. Sussman. Structure and Interpretation of Computer Programs. MIT Press, 1985.Google Scholar
  2. 2.
    AT&T Bell Labratories. Standard ML of New Jersey, 1993.Google Scholar
  3. 3.
    Blume, M. Standard ML of New Jersey compilation manager. Manual accompanying SML/NJ software, 1995.Google Scholar
  4. 4.
    Borland. Borland C++, 1987, 1994.Google Scholar
  5. 5.
    Bourdoncle, F. Abstract debugging of higher-order imperative languages. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 46–55, 1993.Google Scholar
  6. 6.
    Cadence Research Systems. Chez Scheme Reference Manual, 1994.Google Scholar
  7. 7.
    Clinger, W. and J. Rees, The revised4 report on the algorithmic language Scheme ACM Lisp Pointers, 4(3), July 1991.Google Scholar
  8. 8.
    Dybvig, R. K., R. Hieb and C. Bruggeman. Syntactic abstraction in Scheme. Lisp and Symbolic Computation, 5(4):295–326, December 1993.Google Scholar
  9. 9.
    Felleisen, M. An extended λ-calculus for Scheme. In ACM Symposium on Lisp and Functional Programming, pages 72–84, 1988.Google Scholar
  10. 10.
    Felleisen, M. On the expressive power of programming languages. Science of Computer Programming, 17:35–75, 1991.Google Scholar
  11. 11.
    Felleisen, M. and R. Hieb. The revised report on the syntactic theories of sequential control and state. In Proceedings of Theoretical Computer Science, pages 235–271, 1992.Google Scholar
  12. 12.
    Findler, R. B. and M. Flatt. PLT MrEd: Graphical toolbox manual. Technical Report TR97-279, Rice University, 1997.Google Scholar
  13. 13.
    Flanagan, C. and M. Felleisen. Componential set-based analysis. In ACM SIGPLAN Conference on Programming Language Design and Implementation, 1997.Google Scholar
  14. 14.
    Flanagan, C., M. Flatt, S. Krishnamurthi, S. Weirich and M. Felleisen. Catching bugs in the web of program invariants. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 23–32, May 1996.Google Scholar
  15. 15.
    Flatt, M. PLT MzScheme: Language manual. Technical Report TR97-280, Rice University, 1997.Google Scholar
  16. 16.
    Francez, N., S. Goldenberg, R. Y. Pinter, M. Tiomkin and S. Tsur. An environment for logic programming. SIGPLAN Notices, 20(7):179–190, July 1985.Google Scholar
  17. 17.
    Hanson, C., The MIT Scheme Team and A Cast of Thousands. MIT Scheme Reference, 1993.Google Scholar
  18. 18.
    Harlequin Inc. MLWorks, 1996.Google Scholar
  19. 19.
    Harper, R., P. Lee, F. Pfenning and E. Rollins.Incremental recompilation for Standard ML of New Jersey. Technical Report CMU-CS-94-116, Carnegie Mellon University, 1994.Google Scholar
  20. 20.
    Heintze, N. Set based analysis of ML programs. In ACM Symposium on Lisp and Functional Programming, 1994.Google Scholar
  21. 21.
    Hsiang, J. and M. Srivas. A Prolog environment. Technical Report 84-074, State University of New York at Stony Brook, Stony Brook, New York, July 1984.Google Scholar
  22. 22.
    Kohlbecker, E. E., D. P. Friedman, M. Felleisen and B. F. Duba. Hygienic macro expansion. In ACM Symposium on Lisp and Functional Programming, pages 151–161, 1986.Google Scholar
  23. 23.
    Kohlbecker Jr, E. E. Syntactic Extensions in the Programming Language Lisp. PhD thesis, Indiana University, August 1986.Google Scholar
  24. 24.
    Komorowski, H. J. and S. Omori. A model and an implementation of a logic programming environment. SIGPLAN Notices, 20(7):191–198, July 1985.Google Scholar
  25. 25.
    Koschmann, T. and M. W. Evens. Bridging the gap between object-oriented and logic programming. IEEE Software, 5:36–42, July 1988.Google Scholar
  26. 26.
    Krishnamurthi, S. Zodiac: A framework for building interactive programming tools. Technical Report TR96-262, Rice University, 1996.Google Scholar
  27. 27.
    Lane, A. Turbo Prolog revisited. BYTE, 13(10):209–212, October 1988.Google Scholar
  28. 28.
    Leroy, X. The Objective Caml system, documentation and user's guide, 1997.Google Scholar
  29. 29.
    Metrowerks. CodeWarrior, 1993–1996.Google Scholar
  30. 30.
    Microsoft. Microsoft Developer Studio, 1995.Google Scholar
  31. 31.
    Milner, R., M. Tofte and R. Harper. The Definition of Standard ML. MIT Press, 1990.Google Scholar
  32. 32.
    Reid, R. J.First-course language for computer science majors. Posting to, October 1995.Google Scholar
  33. 33.
    EdScheme: A Modern Lisp, 1991.Google Scholar
  34. 34.
    Schemer's Inc. and Terry Kaufman. Scheme in colleges and high schools. Available on the web. URL:http://www.schemers. com/schools.html.Google Scholar
  35. 35.
    Stallman, R. GNU Emacs Manual. Free Software Foundation Inc., 675 Mass. Ave., Cambridge, MA 02139, 1987.Google Scholar
  36. 36.
    Texas Instruments. PC Scheme User's Guide & Language Reference Manual-Student Edition, 1988.Google Scholar
  37. 37.
    Wadler, P. A critique of Abelson and Sussman, or, why calculating is better than scheming. SIGPLAN Notices, 22(3), March 1987.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Robert Bruce Findler
    • 1
  • Cormac Flanagan
    • 1
  • Matthew Flatt
    • 1
  • Shriram Krishnamurthi
    • 1
  • Matthias Felleisen
    • 1
  1. 1.Department of Computer ScienceRice University HoustonTexas

Personalised recommendations