(Note: some of the links on this page point to documentation not maintained by the University of Delaware. When you click on one of these links, that page will open in a separate browser window (if your browser supports this feature). Subsequent clicks on non-UD links will load in the same window.)
DrScheme is a comprehensive integrated development environment for writing, debugging and analyzing Scheme programs. It runs under many operating systems including Windows, MacOS, Solaris, and Linux. The underlying Scheme implementation is PLT Schema, and DrScheme is the GUI front end to the command line version called MzScheme. To use DrScheme effectively, be sure to choose the right language level. If you are using DrScheme as part of a course, your instructor will tell you what language choose.
DrScheme's features include:
- Source text highlighting of syntax errors
- Source text highlighting of run-time errors
- Support for multiple levels of Scheme from "beginner'' to "advanced''
- Interactive and graphical static analysis
- An object system
- A toolbox of simple drawing commands suitable for simple drawing
- An advanced graphical user interface (GUI) library.
Where to use/get DrScheme
Where can I use DrScheme on campus?
The current UNIX version of DrScheme is available on Strauss. You must run this version in an X11 windows evironment.
How can I obtain DrScheme for my personal computer?
DrScheme is available for other operating systems. You can download a copy from the DrScheme web page.
Click the Help menu and choose Help Desk to invoke the on-line help system.
Running DrScheme on Strauss
DrScheme is an X-windows front end to the entire PLT installation of Scheme. You do not need to enter commands, but you must be at an Sun Ray terminal or running X server software (such as Cygwin or Xming) in order to use DrScheme. If you are using a non-graphical interface (i.e., telnet or secure shell), you can only run 'mzscheme' (the underlying scheme implementation on which DrScheme is based).
To start DrScheme use the command:
drschemeInvoking DrScheme on other platforms may require a different command or may be done via an icon. On the Sun Ray terminals drsheme appears on the menu as
Applications -> Programming -> drscheme on StraussThe information below will apply to all platforms.
This will bring up an opening screen with the PLT logo and a progress bar. If this is the first time you are running DrScheme, you will be prompted to select a spoken language (e.g. English) and a programming language - most users will want to select "Standard." You can change either language at any time - the programming language is selected from the "Language" menu, and the spoken language is selected from the "Help" menu. You may also be prompted to "Check for Updates." If you are using Strauss, ignore this prompt (click "Next"). If you are running DrScheme on your own PC, you can check for updates, although there probably are none if you just installed it.
When DrScheme finishes loading, the opening screen will be replaced by the DrScheme interactive window, which looks like this:
(This "snapshot" was created on a Linux platform. Your screen may not look exactly like this, but it should be close.)
The upper window is called the definitions window; the lower window is called the interactions window.
- Enter function definitions ("programs") in the upper window and issue DrScheme commands in the lower window. You can also load a saved listing of function definitions by selecting Open on the File menu.
- Check for syntax errors by clicking the Check Syntax button. (If you do not see a Check Syntax button on your screen, click the Language menu and select one of the options that does not say without debugging.)
- Load your function definitions into the interpreter by clicking the Execute button.
- Invoke functions in the interactions window.
- Save your program by clicking the Save button (or use Save Definitions or Save Definitions As... on the File menu).
Exit your DrScheme sesssion by selecting Quit in the File menu.
Using command line verison - MzScheme
PLT scheme programs can be entered on the command line in what is called listener mode. To enter listener mode, type the command
mzschemeIn listener mode mzsheme is waiting for a scheme command. All scheme commands are enclosed in parenthesis, even the exit command to terminate your session. Here is a complete mzscheme session where a simple "hello world" program is typed and evaluated.
bash-2.05$ mzscheme Welcome to MzScheme v371 [3m], Copyright (c) 2004-2007 PLT Scheme Inc. > (begin (display "Hello, World") (newline)) Hello, World > (exit) bash-2.05$
For more extensive programs, you can prepare the program in any text editor for loading into a mzscheme session. Here is the simple "Hello World" example file you can name hello.scm.
; First scheme program (begin (display "Hello, World!") (newline) )To load and evaluate this program, type the Strauss command
mzscheme -r hello.scm
Preliminary Setup for PLT Scheme binaries
The PLT Scheme distribution has more than just drscheme and mzscheme. In most cases, one of these will be sufficient, but you may want to add the entire set of PLT tools to your shell path. It is best to start a shell just for PLT work and begin by executing the necessary shell commands to add the PLT Scheme binaries to your execution path and add the PLT scheme man page directory to your man page path.
For csh and tcsh
setenv PATH /opt/plt/current/bin:$PATH setenv MANPATH /opt/plt/current/man:$MANPATH
for sh and bash
PATH=/opt/plt/current/bin:$PATH export MANPATH=/opt/plt/current/man:$MANPATH
In this shell you can run any of the PLT scheme tools, which are documented in the man pages. You may want to add these commands to your dot files so you do not have to type them each time you start a new shell. After saving the modifications, log out and log in again to have the changes take effect.
- On-line Help
The full documentation for DrScheme (and the rest of the PLT packages) is available at the PLT web site in HTML and PDF format.
For additional information, refer to the PLT (Programming Language Team) Web page.