Check out the new USENIX Web site.

When is an object not an object?

Mark Roseman
Department of Computer Science
University of Calgary


This paper describes an approach to designing and building Tcl extensions that can be flexibly and dynamically changed using either Tcl or C. In particular, extensions having an object-based interface are considered. This extension approach seeks to avoid the "chasm" found in migrating code from Tcl to C as it matures by freely mixing Tcl and C to create an object's subcommands. The approach differs from traditional Tcl object frameworks in that it retains familiar mechanisms used to create new toplevel Tcl commands, and emphasizes extensions holding much of their data at the C level. A secondary goal is to illustrate how extension authors can encourage rich customization, by exposing object internals to change. To illustrate the technique, a simple data structure is extended to support sharing between multiple Tcl processes.

Download the full text of this paper in ASCII (34,182 bytes) and POSTSCRIPT (102,283 bytes) form.

To Become a USENIX Member, please see our Membership Information.