ABSTRACT
Design patterns have earned a place in the developer's arsenal of tools and techniques for software development. They have proved so useful, in fact, that some have called for their promotion to programming language features. In turn this has rekindled the age-old debate over the mechanism that belong in programming languages versus those that are better served by tools. The debate comes full circle when one contemplates code generation and methodological tool support for patterns. The authors compare and contrast programming languages, tools, and patterns to assess their relative merits and to clarify their roles in the development process.
References
- 1.Alexandrescu, A. Creating Generic Components Using Standard C++. Addison-Wesley, Reading, MA. To appear.]]Google Scholar
- 2.Baumgartner, G., et al. On the Interaction of Object-Oriented Design Patterns and Programming Languages. Technical report CSD-TR-96-020, Dept. of Computer Sciences, Purdue University, February 1996.]]Google Scholar
- 3.Bosch, J. Design Patterns and Frameworks: On the Issue of Language Support. Workshop on Language Support for Design Patterns and Frameworks, European Conference on Object-Oriented Programming (ECOOP '97), June 1997.]] Google Scholar
Digital Library
- 4.Bosch, j. Design Patterns as Language Constructs. To appear, Journal of Object-Oriented Programming. Available at http ://www.i de.hk-r, se/--b o sch/articl e s. html.]]Google Scholar
- 5.Budinsky, F., et al. Automatic Code Generation from Design Patterns. IBM Systems Journal, Vol. 35, No. 2 (1996), pp. 151-171.]] Google Scholar
Digital Library
- 6.Chambers, C. Object-Oriented Multi-Methods in Cecil. European Conference on Object-Oriented Programming (ECOOP '92), June/July 1992.]] Google Scholar
Digital Library
- 7.Chambers, C. Predicate Classes. European Conference on Object-Oriented Programming (ECOOP '93), July 1993.]] Google Scholar
Digital Library
- 8.Chambers, C. The Cecil Language: Specification and Rationale, Version 2.1. Technical report #93--03-05 (revised), Department of Computer Science and Engineering, University of Washington, March 1997. Available at http://www ~cs.washin~on.edu/research/projects/cecil/www/Papers/cecil -spec.htmt.]]Google Scholar
- 9.Coplien, J., et al., eds. Pattern Languages of Program Design. Addison-Wesley, Reading, MA, 1995.]] Google Scholar
Digital Library
- 10.Chiba, S. A Metaobject Protocol for C++. A CM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA "95), October 1995. Available at http://www.hlla, i s. tsukuba, ac. ilg/'-chiba/op enc++.html.]] Google Scholar
Digital Library
- 11.Ducasse, S. Message Passing Abstractions as Elementary Bricks for Design Pattern Implementation. Workshop on Language Support for Design Patterns and Frameworks, European Conference on Object-Oriented Programming (ECOOP '97), June 1997.]] Google Scholar
Digital Library
- 12.Ernst, M.D., et al. Predicate Dispatching: A Unified Theory of Dispatch. European Conference on Object-Oriented Programming (ECOOP '98), July 1998.]] Google Scholar
Digital Library
- 13.Gamma, E., et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA, 1995.]] Google Scholar
Digital Library
- 14.Gil, j., et al. Design Patterns vs. Language Design. Workshop on Language Support for Design Patterns and Frameworks, European Conference on Object-Oriented Programming (ECOOP '97), June 1997.]] Google Scholar
Digital Library
- 15.Harrison, N., et al., eds. Pattern Languages of Program Design 4. Addison-Wesley, Reading, MA, 2000.]]Google Scholar
- 16.Harrison, W., et al. Attaching Instance Variables to Method Realizations Instead of Classes. International Conference on Computer Languages, April 1992.]]Google Scholar
- 17.Harrison, W., et al. Subject-Oriented Programming~A Critique of Pure Objects. ACM Conference on Object- Oriented Programming Systems, Languages, and Applications (OOPSLA "93), September 1993.]] Google Scholar
Digital Library
- 18.Martin, R., et al., eds. Pattern Languages of Program Design 3. Addison-Wesley, Reading, MA, 1998.]] Google Scholar
Digital Library
- 19.Millstein, T., et al. Modular Statically Typed Multi methods . European Conference on Object-Oriented Programming (ECOOP '99), June 1999.]] Google Scholar
Digital Library
- 20.Norvig, P. Design Patterns in Dynamic Programming. Presentation at Object WorId, 1996. Available at http://www .norvig.com/design-patterns/.]]Google Scholar
- 21.Schmidt, D., et al. Double-Checked Locking. In Pattern Languages of Program Design 3, Addison-Wesley, Reading, MA, 1998.]] Google Scholar
Digital Library
- 22.Seiter, L.M. Evolution of Object Behavior using Context Relations. 1EEE Transactions on Software Engineering, January 1998. An earlier version with the same name appeared in the A CM Symposium on the Foundations of Software Engineering (FSE '96), October 1996.]] Google Scholar
Digital Library
- 23.Shalit, A. The Dylan Reference Manual. Addison-Wesley, Reading, MA, 1996.]]Google Scholar
- 24.Simonyi, C. The Future is Intentional. IEEE Computer, May 1999. More information available at h~_://www.research. microsoft.corn/ip/.]]Google Scholar
Digital Library
- 25.Ungar, D., et al. Self: The Power of Simplicity. ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '87), October 1987.]] Google Scholar
Digital Library
- 26.Vlissides, J. Pattern Hatching: Design Patterns Applied. Addison-Wesley, Reading, MA, 1998.]] Google Scholar
Digital Library
- 27.Vlissides, J. Visitor in Frameworks. C++ Report, Vol. 10, No. 10 (1999), pp. 40--46.]]Google Scholar
Index Terms
A debate on language and tool support for design patterns






Comments