[Add94]
| Addison-Wesley, Reading, MA. NEXTSTEP General Reference: Release 3, Volumes 1 and 2, 1994.
[AG90]
| D.B. Anderson and S. Gossain. Hierarchy evolution and the software lifecycle. In TOOLS '90 Conference Proceedings, pages 41–50, Paris, June 1990. Prentice Hall.
[AIS+77]
| Christopher Alexander, Sara Ishikawa, Murray Silverstein, Max Jacobson, Ingrid Fiksdahl-King, and Shlomo Angel. A Pattern Language. Oxford University Press, New York, 1977.
[App89]
| Apple Computer, Inc., Cupertino, CA. Macintosh Programmers Workshop Pascal 3.0 Reference, 1989.
[App92]
| Apple Computer, Inc., Cupertino, CA. Dylan. An object-oriented dynamic language, 1992.
[Arv91]
| James Arvo. Graphics Gems II. Academic Press, Boston, MA, 1991.
[AS85]
| B. Adelson and E. Soloway. The role of domain experience in software design. IEEE Transactions on Software Engineering, 11(11):1351–1360, 1985.
[BE93]
| Andreas Birrer and Thomas Eggenschwiler. Frameworks in the financial engineering domain: An experience report. In European Conference on Object-Oriented Programming, pages 21–35, Kaiserslautern, Germany, July 1993. Springer-Verlag.
[BJ94]
| Kent Beck and Ralph Johnson. Patterns generate architectures. In European Conference on Object-Oriented Programming, pages 139–149, Bologna, Italy, July 1994. Springer-Verlag.
[Boo94]
| Grady Booch. Object-Oriented Analysis and Design with Applications. Benjamin/Cummings, Redwood City, CA, 1994. Second Edition.
[Bor81]
| A. Borning. The programming language aspects of ThingLab—a constraint-oriented simulation laboratory. ACM Transactions on Programming Languages and Systems, 3(4):343–387, October 1981.
[Bor94]
| Borland International, Inc., Scotts Valley, CA. A Technical Comparison of Borland ObjectWindows 2.0 and Microsoft MFC 2.5, 1994.
[BV90]
| Grady Booch and Michael Vilot. The design of the C++ Booch components. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 1–11, Ottawa, Canada, October 1990. ACM Press.
[Cal93]
| Paul R. Calder. Building User Interfaces with Lightweight Objects. PhD thesis, Stanford University, 1993.
[Car89]
| J. Carolan. Constructing bullet-proof classes. In Proceedings C++ at Work '89. SIGS Publications, 1989.
[Car92]
| Tom Cargill. C++ Programming Style. Addison-Wesley, Reading, MA, 1992.
[CIRM93]
| Roy H. Campbell, Nayeem Islam, David Raila, and Peter Madeany. Designing and implementing Choices: An object-oriented system in C++. Communications of the ACM, 36(9):117–126, September 1993.
[CL90]
| Paul R. Calder and Mark A. Linton. Glyphs: Flyweight objects for user interfaces. In ACM User Interface Software Technologies Conference, pages 92–101, Snowbird, UT, October 1990.
[CL92]
| Paul R. Calder and Mark A. Linton. The object-oriented implementation of a document editor. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 154–165, Vancouver, British Columbia, Canada, October 1992. ACM Press.
[Coa92]
| Peter Coad. Object-oriented patterns. Communications of the ACM, 35(9):152–159, September 1992.
[Coo92]
| William R. Cook. Interfaces and specifications for the Smalltalk-80 collection classes. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 1–15, Vancouver, British Columbia, Canada, October 1992. ACM Press.
[Cop92]
| James O. Coplien. Advanced C++ Programming Styles and Idioms. Addison-Wesley, Reading, MA, 1992.
[Cur89]
| Bill Curtis. Cognitive issues in reusing software artifacts. In Ted J. Biggerstaff and Alan J. Perlis, editors, Software Reusability, Volume II: Applications and Experience, pages 269–287. Addison-Wesley, Reading, MA, 1989.
[dCLF93]
| Dennis de Champeaux, Doug Lea, and Penelope Faure. Object-Oriented System Development. Addison-Wesley, Reading, MA, 1993.
[Deu89]
| L. Peter Deutsch. Design reuse and frameworks in the Smalltalk-80 system. In Ted J. Biggerstaff and Alan J. Perlis, editors, Software Reusability, Volume II: Applications and Experience, pages 57–71. Addison-Wesley, Reading, MA, 1989.
[Ede92]
| D. R. Edelson. Smart pointers: They're smart, but they're not pointers. In Proceedings of the 1992 USENIX C++ Conference, pages 1–19, Portland, OR, August 1992. USENIX Association.
[EG92]
| Thomas Eggenschwiler and Erich Gamma. The ET++SwapsManager: Using object technology in the financial engineering domain. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 166–178, Vancouver, British Columbia, Canada, October 1992. ACM Press.
[ES90]
| Margaret A. Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, Reading, MA, 1990.
[Foo92]
| Brian Foote. A fractal model of the lifecycles of reusable objects. OOPSLA '92 Workshop on Reuse, October 1992. Vancouver, British Columbia, Canada.
[GA89]
| S. Gossain and D.B. Anderson. Designing a class hierarchy for domain representation and reusability. In TOOLS '89 Conference Proceedings, pages 201–210, CNIT Paris—La Defense, France, November 1989. Prentice Hall.
[Gam91]
| Erich Gamma. Object-Oriented Software Development based on ET++: Design Patterns, Class Library, Tools (in German). PhD thesis, University of Zurich Institut für Informatik, 1991.
[Gam92]
| Erich Gamma. Object-Oriented Software Development based on ET++: Design Patterns, Class Library, Tools (in German). Springer-Verlag, Berlin, 1992.
[Gla90]
| Andrew Glassner. Graphics Gems. Academic Press, Boston, MA, 1990.
[GM92]
| M. Graham and E. Mettala. The Domain-Specific Software Architecture Program. In Proceedings of DARPA Software Technology Conference, 1992, pages 204–210, April 1992. Also published in CrossTalk, The Journal of Defense Software Engineering, pages 19–21, 32, October 1992.
[GR83]
| Adele J. Goldberg and David Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, MA, 1983.
[HHMV92]
| Richard Helm, Tien Huynh, Kim Marriott, and John Vlissides. An object-oriented architecture for constraint-based graphical editing. In Proceedings of the Third Eurographics Workshop on Object-Oriented Graphics, pages 1–22, Champéry, Switzerland, October 1992. Also available as IBM Research Division Technical Report RC 18524 (79392).
[HO87]
| Daniel C. Halbert and Patrick D. O'Brien. Object-oriented development. IEEE Software, 4(5):71–79, September 1987.
[ION94]
| IONA Technologies, Ltd., Dublin, Ireland. Programmer's Guide for Orbix, Version 1.2, 1994.
[JCJO92]
| Ivar Jacobson, Magnus Christerson, Patrik Jonsson, and Gunnar Overgaard. Object-Oriented Software Engineering—A Use Case Driven Approach. Addison-Wesley, Wokingham, England, 1992.
[JF88]
| Ralph E. Johnson and Brian Foote. Designing reusable classes. Journal of Object-Oriented Programming, 1(2):22–35, June/July 1988.
[JML92]
| Ralph E. Johnson, Carl McConnell, and J. Michael Lake. The RTL system: A framework for code optimization. In Robert Giegerich and Susan L. Graham, editors, Code Generation—Concepts, Tools, Techniques. Proceedings of the International Workshop on Code Generation, pages 255–274, Dagstuhl, Germany, 1992. Springer-Verlag.
[Joh92]
| Ralph Johnson. Documenting frameworks using patterns. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 63–76, Vancouver, British Columbia, Canada, October 1992. ACM Press.
[JZ91]
| Ralph E. Johnson and Jonathan Zweig. Delegation in C++. Journal of Object-Oriented Programming, 4(11):22–35, November 1991.
[Kir92]
| David Kirk. Graphics Gems III. Harcourt, Brace, Jovanovich, Boston, MA, 1992.
[Knu73]
| Donald E. Knuth. The Art of Computer Programming, Volumes 1, 2, and 3. Addison-Wesley, Reading, MA, 1973.
[Knu84]
| Donald E. Knuth. The TeX book. Addison-Wesley, Reading, MA, 1984.
[Kof93]
| Thomas Kofler. Robust iterators in ET++. Structured Programming, 14:62–85, March 1993.
[KP88]
| Glenn E. Krasner and Stephen T. Pope. A cookbook for using the model-view controller user interface paradigm in Smalltalk-80. Journal of Object-Oriented Programming, 1(3):26–49, August/September 1988.
[LaL94]
| Wilf LaLonde. Discovering Smalltalk. Benjamin/Cummings, Redwood City, CA, 1994.
[LCI+92]
| Mark Linton, Paul Calder, John Interrante, Steven Tang, and John Vlissides. InterViews Reference Manual. CSL, Stanford University, 3.1 edition, 1992.
[Lea88]
| Doug Lea. libg++, the GNU C++ library. In Proceedings of the 1988 USENIX C++ Conference, pages 243–256, Denver, CO, October 1988. USENIX Association.
[LG86]
| Barbara Liskov and John Guttag. Abstraction and Specification in Program Development. McGraw-Hill, New York, 1986.
[Lie85]
| Henry Lieberman. There's more to menu systems than meets the screen. In SIGGRAPH Computer Graphics, pages 181–189, San Francisco, CA, July 1985.
[Lie86]
| Henry Lieberman. Using prototypical objects to implement shared behavior in object-oriented systems. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 214–223, Portland, OR, November 1986.
[Lin92]
| Mark A. Linton. Encapsulating a C++ library. In Proceedings of the 1992 USENIX C++ Conference, pages 57–66, Portland, OR, August 1992. ACM Press.
[LP93]
| Mark Linton and Chuck Price. Building distributed user interfaces with Fresco. In Proceedings of the 7th X Technical Conference, pages 77–87, Boston, MA, January 1993.
[LR93]
| Daniel C. Lynch and Marshall T. Rose. Internet System Handbook. Addison-Wesley, Reading, MA, 1993.
[LVC89]
| Mark A. Linton, John M. Vlissides, and Paul R. Calder. Composing user interfaces with InterViews. Computer, 22(2):8–22, February 1989.
[Mar91]
| Bruce Martin. The separation of interface and implementation in C++. In Proceedings of the 1991 USENIX C++ Conference, pages 51–63, Washington, D.C., April 1991. USENIX Association.
[McC87]
| Paul McCullough. Transparent forwarding: First steps. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 331–341, Orlando, FL, October 1987. ACM Press.
[Mey88]
| Bertrand Meyer. Object-Oriented Software Construction. Series in Computer Science. Prentice Hall, Englewood Cliffs, NJ, 1988.
[Mur93]
| Robert B. Murray. C++ Strategies and Tactics. Addison-Wesley, Reading, MA, 1993.
[OJ90]
| William F. Opdyke and Ralph E. Johnson. Refactoring: An aid in designing application frameworks and evolving object-oriented systems. In SOOPPA Conference Proceedings, pages 145–161, Marist College, Poughkeepsie, NY, September 1990. ACM Press.
[OJ93]
| William F. Opdyke and Ralph E. Johnson. Creating abstract superclasses by refactoring. In Proceedings of the 21st Annual Computer Science Conference (ACM CSC '93), pages 66–73, Indianapolis, IN, February 1993.
[P+88]
| Andrew J. Palay et al. The Andrew Toolkit: An overview. In Proceedings of the 1988 Winter USENIX Technical Conference, pages 9–21, Dallas, TX, February 1988. USENIX Association.
[Par90]
| ParcPlace Systems, Mountain View, CA. ObjectWorks\Smalltalk Release 4 Users Guide, 1990.
[Pas86]
| Geoffrey A. Pascoe. Encapsulators: A new software paradigm in Smalltalk-80. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 341–346, Portland, OR, October 1986. ACM Press.
[Pug90]
| William Pugh. Skiplists: A probabilistic alternative to balanced trees. Communications of the ACM, 33(6):668–676, June 1990.
[RBP+91]
| James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorenson. Object-Oriented Modeling and Design. Prentice Hall, Englewood Cliffs, NJ, 1991.
[Rum94]
| James Rumbaugh. The life of an object model: How the object model changes during development. Journal of Object-Oriented Programming, 7(1):24–32, March/April 1994.
[SE84]
| Elliot Soloway and Kate Ehrlich. Empirical studies of programming knowledge. IEEE Transactions on Software Engineering, 10(5):595–609, September 1984.
[Sha90]
| Yen-Ping Shan. MoDE: A UIMS for Smalltalk. In ACM OOPSLA/ECOOP '90 Conference Proceedings, pages 258–268, Ottawa, Ontario, Canada, October 1990. ACM Press.
[Sny86]
| Alan Snyder. Encapsulation and inheritance in object-oriented languages. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 38–45, Portland, OR, November 1986. ACM Press.
[SS86]
| James C. Spohrer and Elliot Soloway. Novice mistakes: Are the folk wisdoms correct? Communications of the ACM, 29(7):624–632, July 1986.
[SS94]
| Douglas C. Schmidt and Tatsuya Suda. The Service Configurator Framework: An extensible architecture for dynamically configuring concurrent, multi-service network daemons. In Proceeding of the Second International Workshop on Configurable Distributed Systems, pages 190–201, Pittsburgh, PA, March 1994. IEEE Computer Society.
[Str91]
| Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, MA, 1991. Second Edition.
[Str93]
| Paul S. Strauss. IRIS Inventor, a 3D graphics toolkit. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 192–200, Washington, D.C., September 1993. ACM Press.
[Str94]
| Bjarne Stroustrup. The Design and Evolution of C++. Addison-Wesley, Reading, MA, 1994.
[Sut63]
| I.E. Sutherland. Sketchpad: A Man-Machine Graphical Communication System. PhD thesis, MIT, 1963.
[Swe85]
| Richard E. Sweet. The Mesa programming environment. SIGPLAN Notices, 20(7):216–229, July 1985.
[Sym93a]
| Symantec Corporation, Cupertino, CA. Bedrock Developer's Architecture Kit, 1993.
[Sym93b]
| Symantec Corporation, Cupertino, CA. THINK Class Library Guide, 1993.
[Sza92]
| Duane Szafron. SPECTalk: An object-oriented data specification language. In Technology of Object-Oriented Languages and Systems (TOOLS 8), pages 123–138, Santa Barbara, CA, August 1992. Prentice Hall.
[US87]
| David Ungar and Randall B. Smith. Self: The power of simplicity. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 227–242, Orlando, FL, October 1987. ACM Press.
[VL88]
| John M. Vlissides and Mark A. Linton. Applying object-oriented design to structured graphics. In Proceedings of the 1988 USENIX C++ Conference, pages 81–94, Denver, CO, October 1988. USENIX Association.
[VL90]
| John M. Vlissides and Mark A. Linton. Unidraw: A framework for building domain-specific graphical editors. ACM Transactions on Information Systems, 8(3):237–268, July 1990.
[WBJ90]
| Rebecca Wirfs-Brock and Ralph E. Johnson. A survey of current research in object-oriented design. Communications of the ACM, 33(9):104–124, 1990.
[WBWW90]
| Rebecca Wirfs-Brock, Brian Wilkerson, and Lauren Wiener. Designing Object-Oriented Software. Prentice Hall, Englewood Cliffs, NJ, 1990.
[WGM88]
| André Weinand, Erich Gamma, and Rudolf Marty. ET++—An object-oriented application framework in C++. In Object-Oriented Programming Systems, Languages, and Applications Conference Proceedings, pages 46–57, San Diego, CA, September 1988. ACM Press.

Index
Foundation Classes