Robert Findler

The Architecture of DrScheme or How to Build Extensible Software

This talk presents the main architectural elements of DrScheme, a programming environment for Scheme. Rice's programming languages team developed this environment for both research and teaching purposes; over the past six years, it has become the most popular Scheme programming environment.

The focus of the talk concerns two forms of extensibility that DrScheme supports. First, DrScheme supports plugins that adapt its behavior. Examples include an algebraic stepper and a set-based program analysis. Second, the user's Scheme program is itself a form of extension to DrScheme, since it runs on the same virtual machine as the Drscheme environment.

These two forms of extensibility pose the same design and implementation problems that the designers of operating systems and web browsers face. We have found novel solutions to these problems in the context of a high-level programming language. This talk presents the problems, their linguistic solutions, and summarizes the lessons learned. We intend to use the lessons for the contruction of other extensible systems, possibly including a Scheme operating system.This talk presents the main architectural elements of DrScheme, a programming environment for Scheme. Rice's programming languages team developed this environment for both research and teaching purposes; over the past six years, it has become the most popular Scheme programming environment.

The focus of the talk concerns two forms of extensibility that DrScheme supports. First, DrScheme supports plugins that adapt its behavior. Examples include an algebraic stepper and a set-based program analysis. Second, the user's Scheme program is itself a form of extension to DrScheme, since it runs on the same virtual machine as the Drscheme environment.

These two forms of extensibility pose the same design and implementation problems that the designers of operating systems and web browsers face. We have found novel solutions to these problems in the context of a high-level programming language. This talk presents the problems, their linguistic solutions, and summarizes the lessons learned. We intend to use the lessons for the contruction of other extensible systems, possibly including a Scheme operating system.

Host: Bob Harper

For appointments: Debbie Cavlovich , x8-4750


October 25, 2000
3:30pm
Wean Hall 8220