usenix conference policies
You are here
Filters as a Language Support for Design Patterns in Object-Oriented Scripting Languages
Scripting languages are designed for glueing software components together. Such languages provide features like dynamic extensibility and dynamic typing with automatic conversion that make them well suited for rapid application development. Although these features entail runtime penalties, modern CPUs are fast enough to execute even large applications in scripting languages efficiently.
Large applications typically entail complex program structures. Object-orientation offers the means to solve some of the problems caused by this complexity, but focuses only on entities up to the size of a single class. The object-oriented design community proposes design patterns as a solution for complex interactions that are poorly supported by current object-oriented programming languages. In order to use patterns in an application, their implementation has to be scattered over several classes. This fact makes patterns hard to locate in the actual code and complicates their maintenance in an application.
This paper presents a general approach to combine the ideas of scripting and object-orientation in a way that preserves the benefits of both of them. It describes the object-oriented scripting language XOTCL (Extended OTCL), which is equipped with several language functionalities that help in the implementation of design patterns. We introduce the filter approach which provides a novel, intuitive, and powerful language support for the instantiation of large program structures like design patterns.
author = {Gustaf Neumann and Uwe Zdun},
title = {Filters as a Language Support for Design Patterns in {Object-Oriented} Scripting Languages },
booktitle = {5th Conference on Object-Oriented Technologies and Systems (COOTS 99)},
year = {1999},
address = {San Diego, CA},
url = {https://www.usenix.org/conference/coots-99/filters-language-support-design-patterns-object-oriented-scripting-languages},
publisher = {USENIX Association},
month = may
}
connect with us