A tailorable system is one that can be tailored in its use-environment, without any c hanges to the source-code of the original system. Such a system must allow its users to make signi cant c hanges to its functionality, but without any modi cations to its source-code. One way to accomplish this is to write the system in a manner such that changes to the system's functionality can be made by extensions to its source-code as opposed to modi cations of its source-code. A system written in this manner is an extensible system. The goal of this dissertation is to study the problems encountered in the process of developing highly extensible systems, and in the process of tailoring them. The study is logically divided into four major parts: 1 design deals with issues in the design of extensible systems, 2 support explores the language-level and compiler-level support necessary for developing extensible systems, 3 techniques illustrates some tested techniques for developing extensible systems, and 4 applications deals with the application of the other three parts to create tailorable applications in speci c domains. The main contributions of this dissertation include: 1 an approach for implementing tailorable systems based on embedding an interpreter into a framework-instance with open points, 2 a technique for making interpreted objects persistent, 3 identi cation of language mechanisms which are suitable for writing tailorable systems, 4 an investigation of the relationship between object-oriented programming concepts and extensibility, 5 dynamic extensibility in Beta, and, in general, in any static object-oriented language, 6 a tailorable hypermedia system which allows source-level tailoring in order to de ne new media-types, 7 a technique for making a batch-oriented direct-manipulation-based userinterface generator interactive, 8 techniques for the implementation of an interpreter for an object-oriented language like Beta, 9 a comprehensive o v erview of the area of tailorable systems, and 10 many large working systems like the Beta interpreter, and the tailorable hypermedia system. The dissertation comprises of ve, independently written, related papers. On the Construction of Extensible Systems" presents an approach for the construction of extensible systems and focuses on the language mechanisms which allow extensible systems to be constructed. Dynamic Extensibility in a Statically-compiled Object-oriented Language" v presents a technique for introducing dynamic extensibility in Beta; as part of this technique it presents a Beta-interpreter library with its API. On the Implementation of an Interpreter for Building Extensible Applications" presents the implementation details of the Beta interpreter, discussing only the interesting issues. Extensibility as the basis for Incremental Application Generation" presents a technique for using the interpreter to transform a user-interface generator, which generates code in Beta, from a batchoriented system into an interactive system. Building Tailorable Hypermedia S...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.