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.
Preview
Unable to display preview. Download preview PDF.
References
Abelson, H., G. J. Sussman and J. Sussman. Structure and Interpretation of Computer Programs. MIT Press, 1985.
AT&T Bell Labratories. Standard ML of New Jersey, 1993.
Blume, M. Standard ML of New Jersey compilation manager. Manual accompanying SML/NJ software, 1995.
Borland. Borland C++, 1987, 1994.
Bourdoncle, F. Abstract debugging of higher-order imperative languages. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 46–55, 1993.
Cadence Research Systems. Chez Scheme Reference Manual, 1994.
Clinger, W. and J. Rees, The revised4 report on the algorithmic language Scheme ACM Lisp Pointers, 4(3), July 1991.
Dybvig, R. K., R. Hieb and C. Bruggeman. Syntactic abstraction in Scheme. Lisp and Symbolic Computation, 5(4):295–326, December 1993.
Felleisen, M. An extended λ-calculus for Scheme. In ACM Symposium on Lisp and Functional Programming, pages 72–84, 1988.
Felleisen, M. On the expressive power of programming languages. Science of Computer Programming, 17:35–75, 1991.
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.
Findler, R. B. and M. Flatt. PLT MrEd: Graphical toolbox manual. Technical Report TR97-279, Rice University, 1997.
Flanagan, C. and M. Felleisen. Componential set-based analysis. In ACM SIGPLAN Conference on Programming Language Design and Implementation, 1997.
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.
Flatt, M. PLT MzScheme: Language manual. Technical Report TR97-280, Rice University, 1997.
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.
Hanson, C., The MIT Scheme Team and A Cast of Thousands. MIT Scheme Reference, 1993.
Harlequin Inc. MLWorks, 1996.
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.
Heintze, N. Set based analysis of ML programs. In ACM Symposium on Lisp and Functional Programming, 1994.
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.
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.
Kohlbecker Jr, E. E. Syntactic Extensions in the Programming Language Lisp. PhD thesis, Indiana University, August 1986.
Komorowski, H. J. and S. Omori. A model and an implementation of a logic programming environment. SIGPLAN Notices, 20(7):191–198, July 1985.
Koschmann, T. and M. W. Evens. Bridging the gap between object-oriented and logic programming. IEEE Software, 5:36–42, July 1988.
Krishnamurthi, S. Zodiac: A framework for building interactive programming tools. Technical Report TR96-262, Rice University, 1996.
Lane, A. Turbo Prolog revisited. BYTE, 13(10):209–212, October 1988.
Leroy, X. The Objective Caml system, documentation and user's guide, 1997.
Metrowerks. CodeWarrior, 1993–1996.
Microsoft. Microsoft Developer Studio, 1995.
Milner, R., M. Tofte and R. Harper. The Definition of Standard ML. MIT Press, 1990.
Reid, R. J.First-course language for computer science majors. Posting to comp.edu, October 1995.
EdScheme: A Modern Lisp, 1991.
Schemer's Inc. and Terry Kaufman. Scheme in colleges and high schools. Available on the web. URL:http://www.schemers. com/schools.html.
Stallman, R. GNU Emacs Manual. Free Software Foundation Inc., 675 Mass. Ave., Cambridge, MA 02139, 1987.
Texas Instruments. PC Scheme User's Guide & Language Reference Manual-Student Edition, 1988.
Wadler, P. A critique of Abelson and Sussman, or, why calculating is better than scheming. SIGPLAN Notices, 22(3), March 1987.
Author information
Authors and Affiliations
Editor information
Rights 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