Skip to main content

DrScheme: A pedagogic programming environment for scheme

  • Education: Tools and Themes
  • Conference paper
  • First Online:
Programming Languages: Implementations, Logics, and Programs (PLILP 1997)

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abelson, H., G. J. Sussman and J. Sussman. Structure and Interpretation of Computer Programs. MIT Press, 1985.

    Google Scholar 

  2. AT&T Bell Labratories. Standard ML of New Jersey, 1993.

    Google Scholar 

  3. Blume, M. Standard ML of New Jersey compilation manager. Manual accompanying SML/NJ software, 1995.

    Google Scholar 

  4. Borland. Borland C++, 1987, 1994.

    Google Scholar 

  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. Cadence Research Systems. Chez Scheme Reference Manual, 1994.

    Google Scholar 

  7. Clinger, W. and J. Rees, The revised4 report on the algorithmic language Scheme ACM Lisp Pointers, 4(3), July 1991.

    Google Scholar 

  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. Felleisen, M. An extended λ-calculus for Scheme. In ACM Symposium on Lisp and Functional Programming, pages 72–84, 1988.

    Google Scholar 

  10. Felleisen, M. On the expressive power of programming languages. Science of Computer Programming, 17:35–75, 1991.

    Google Scholar 

  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. Findler, R. B. and M. Flatt. PLT MrEd: Graphical toolbox manual. Technical Report TR97-279, Rice University, 1997.

    Google Scholar 

  13. Flanagan, C. and M. Felleisen. Componential set-based analysis. In ACM SIGPLAN Conference on Programming Language Design and Implementation, 1997.

    Google Scholar 

  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. Flatt, M. PLT MzScheme: Language manual. Technical Report TR97-280, Rice University, 1997.

    Google Scholar 

  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. Hanson, C., The MIT Scheme Team and A Cast of Thousands. MIT Scheme Reference, 1993.

    Google Scholar 

  18. Harlequin Inc. MLWorks, 1996.

    Google Scholar 

  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. Heintze, N. Set based analysis of ML programs. In ACM Symposium on Lisp and Functional Programming, 1994.

    Google Scholar 

  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. 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. Kohlbecker Jr, E. E. Syntactic Extensions in the Programming Language Lisp. PhD thesis, Indiana University, August 1986.

    Google Scholar 

  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. 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. Krishnamurthi, S. Zodiac: A framework for building interactive programming tools. Technical Report TR96-262, Rice University, 1996.

    Google Scholar 

  27. Lane, A. Turbo Prolog revisited. BYTE, 13(10):209–212, October 1988.

    Google Scholar 

  28. Leroy, X. The Objective Caml system, documentation and user's guide, 1997.

    Google Scholar 

  29. Metrowerks. CodeWarrior, 1993–1996.

    Google Scholar 

  30. Microsoft. Microsoft Developer Studio, 1995.

    Google Scholar 

  31. Milner, R., M. Tofte and R. Harper. The Definition of Standard ML. MIT Press, 1990.

    Google Scholar 

  32. Reid, R. J.First-course language for computer science majors. Posting to comp.edu, October 1995.

    Google Scholar 

  33. EdScheme: A Modern Lisp, 1991.

    Google Scholar 

  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. Stallman, R. GNU Emacs Manual. Free Software Foundation Inc., 675 Mass. Ave., Cambridge, MA 02139, 1987.

    Google Scholar 

  36. Texas Instruments. PC Scheme User's Guide & Language Reference Manual-Student Edition, 1988.

    Google Scholar 

  37. Wadler, P. A critique of Abelson and Sussman, or, why calculating is better than scheming. SIGPLAN Notices, 22(3), March 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hugh Glaser Pieter Hartel Herbert Kuchen

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Findler, R.B., Flanagan, C., Flatt, M., Krishnamurthi, S., Felleisen, M. (1997). DrScheme: A pedagogic programming environment for scheme. In: Glaser, H., Hartel, P., Kuchen, H. (eds) Programming Languages: Implementations, Logics, and Programs. PLILP 1997. Lecture Notes in Computer Science, vol 1292. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0033856

Download citation

  • DOI: https://doi.org/10.1007/BFb0033856

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63398-3

  • Online ISBN: 978-3-540-69537-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics