Using Concrete Abstractions with EdScheme for Windows

This web page provides information regarding the use of the EdScheme for Windows implementation of Scheme with Concrete Abstractions: An Introduction to Computer Science Using Scheme, by Max Hailperin, Barbara Kaiser, and Karl Knight.

The information here currently corresponds with the version 5.0 of EdScheme for Windows; we will try to track new versions of EdScheme for Windows as they come out. Note also that EdScheme for the Macintosh is different enough that we have a separate web page for it.

Obtaining EdScheme for Windows

EdScheme for Windows is a Scheme development environment sold by Schemers Inc. You can download a completely functional version from their web site for a 14-day evaluation.

Libraries for use with EdScheme for Windows

There are three aspects of the textbook for which a special library needs to be loaded into EdScheme for Windows. One is our use of the error reporting procedure, error, from chapter 6 onward, as well as in the other two libraries. Another is the graphical images, introduced in the application section of chapter 1 and also used in subsequent chapters. The final one is the object-oriented programming system, used in chapter 14.

Each of these libraries can be downloaded from the web below. Once you have them on your computer, you can add the pathname of the directory (folder) where you have stored them to the list of directories EdScheme looks in for files to load; this is specified in the Interpreter section of the Options menu. Now you can load any of the libraries in using the load procedure. For example, you could evaluate (load "error.scm") to load in the error library. However, you can also put these load commands into a file, such as our example startup.scm file, and use the Interpreter section of the Options menu to specify that as a "startup" file, i.e., one that is automatically loaded every time you start EdScheme for Windows. That way you will automatically have full compatibility with the textbook.

This defines the error reporting procedure, error. Not only is this used from chapter 6 onward, it is also used in the other two libraries. Therefore, you must load this one if you load either of the other two. Important note: EdScheme for Windows comes with its own definition of error, which is not compatible with the textbook. Therefore, if you don't load this library in, you will have more obscure symptoms than simply the procedure not being defined. The library file re-defines it in such a way as to be compatible with both the textbook's usage and the usage shown in the EdScheme documentation.
This is the library for graphical images. In addition to the features described in the textbook (most succinctly in the appendix), there are a few extensions. Descriptions of those extensions are in a separate web page.
This is the object-oriented programming system for use with chapter 14.

General notes

Names defined in both Concrete Abstractions and EdScheme for Windows

There are a number of names that we define in Concrete Abstractions that are already pre-defined in EdScheme for Windows. The only real problem this causes is that if you perform the definition from the book, you can't expect the name to simultaneously have both the new value and the one described in the EdScheme for Windows documentation.

We list below the affected names, organized into categories and listed within each category in their order of their appearance within the book:

Positioning of (newline)

Starting in chapter 6, we use the newline procedure to break output into separate lines. Unfortunately, there are two different conventions in use by different Scheme systems. One is to always use newline at the start of each line of output, while the other is to always use it at the end of each line. As a result of this lack of standardization, wherever we positioned the uses of (newline) in our programs would result in output that looked odd on some systems. We've tried in the textbook to make choices that don't look too horrible on any system, with the result that the output tends to look sub-optimal on every system. In particular, there tends to be extra blank lines. If you are working consistently within EdScheme for Windows (or any other one system), feel free to remove or reposition (newline) as necessary to make the output look best.

Chapter by chapter notes

Chapter 1
The procedures for manipulating graphical images need to be loaded from a library, as described above. Additionally, it is worth noting that the various basic blocks, such as rcross-bb, are neither pre-defined nor defined within the library. Instead, their definitions are in a separate file.
Chapter 9
For the application section, we have a EdScheme-specific version of the show procedure.
Chapter 11
Although you could use the SLIM simulator from the application section to work through the earlier sections of this chapter under EdScheme for Windows, you'd be better off using SLIME.
Chapter 14
You will need to load a library file in to get the object-oriented programming system, as described above.
Chapter 15
EdScheme cannot be used for this chapter, since this chapter doesn't use the Scheme programming language. You will need to use a Java 1.1 system instead.

For more information, see the parent web page, or contact Max Hailperin:
Mathematics and Computer Science Department
Gustavus Adolphus College
800 W. College Avenue
St. Peter, MN 56082