Objects + Views = Components?

  • Martin Odersky
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1912)


In support of flexible composition, components need to be adaptable and they need to have first-class plugs. Abstract state machines and object-oriented programming each satisfy one of these requirements very well but satisfy the other only incompletely. This paper describes views, a language construct which provides for both requirements in a balanced way.


Type Class View Graph Dynamic Type Class Symbol Abstract State Machine 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    D.G. Bobrow, K. Kahn, and G. et al. Kiczales. CommonLoops-merging Lisp and object-oriented programming. In Proc. OOPSLA’86, pages 17–29, 1986.Google Scholar
  2. 2.
    Don Box. Essential COM. Addison Wesley, 1998.Google Scholar
  3. 3.
    Peter Canning, William Cook, Walter Hill, Walter Olthoff, and John C. Mitchell. F-bounded polymorphism for object-oriented programming. In Functional Pro-gramming Languages and Computer Architecture, pages 273–280, September 1989.Google Scholar
  4. 4.
    Craig Chambers. Object-oriented multi-methods in Cecil. In Proc. ECOOP, 1992.Google Scholar
  5. 5.
    Kung Chen, Paul Hudak, and Martin Odersky. Parametric type classes. In Proc. ACM Conf. on Lisp and Functional Programming, pages 170–181, June 1992.Google Scholar
  6. 6.
    Robert Englander. Developing Java Beans. O’Reilly & Associates, 1997.Google Scholar
  7. 7.
    Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.Google Scholar
  8. 8.
    Cordelia Hall, Kevin Hammond, Simon Peyton Jones, and Philip Wadler. Type classes in Haskell. In Proc. 5th European Symposium on Programming, pages 241–256, 1994. Springer LNCS 788.Google Scholar
  9. 9.
    William Harrison and Harold Ossher. Subject-oriented programming (a critique of pure objects). In Proc. OOPSLA, pages 411–428, September 1993.Google Scholar
  10. 10.
    Urs Hölzle. Integrating independently-developed components in object-oriented languages. In Proc. ECOOP, volume 707 of Springer Verlag, Lecture Notes in Computer Science, pages 36–56, 1993.Google Scholar
  11. 11.
    Paul Hudak, Simon Peyton Jones, and Philip Wadler. Report on the programming language Haskell: a non-strict, purely functional language, version 1.2. SIGPLAN Notices, 27(5), May 1992. more recent versions at
  12. 12.
    Mark P. Jones. A theory of qualified types. In Proc. 4th European Symposium on Programming, pages 287–306, February 1992. Springer LNCS 582.Google Scholar
  13. 13.
    Mark P. Jones. A system of constructor classes: Overloading and implicit higher-order polymorphism. In Proc. ACM Conf. on Functional Programming Languages and Computer Architecture, pages 52–61, June 1993.Google Scholar
  14. 14.
    Mark P. Jones. Type classes with functional dependencies. In Proc. European Sym-posium on Programming, number 1782 in LNCS, pages 230–244. Springer Verlag, March 2000.zbMATHGoogle Scholar
  15. 15.
    Stefan Kaes. Type inference in the presence of overloading, subtyping, and re-cursive types. In Proc. ACM Conf. on Lisp and Functional Programming, pages 193–204, June 1992.Google Scholar
  16. 16.
    Ralph Keller and Urs Hölzle. Binary component adaptation. In Proc. European Conference on Object Oriented Programming, Lecture Notes in Computer Science. Springer Verlag, 1998.CrossRefGoogle Scholar
  17. 17.
    Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, CristinaVideira Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In Proc. of the European Conference on Object-Oriented Programming, Finland, June 1997.Google Scholar
  18. 18.
    Konstantin Läufer. Type classes with existential types. Journal of Functional Programming, May 1996.Google Scholar
  19. 19.
    Todd Millstein and Craig Chambers. Modular statically typed multimethods. In Proc. ECOOP, number 1628 in LNCS, pages 279–303. Springer Verlag, June 1999.zbMATHGoogle Scholar
  20. 20.
    Betrand Meyer. Object-Oriented Software Construction. Prentice-Hall, 1988.Google Scholar
  21. 21.
    Mira Mezini, Linda Seiter, and Karl Lieberherr. Component integration with plug-gable composite adapters. In Software Architectures and Component Technology. Kluwer, 2000.Google Scholar
  22. 22.
    Tobias Nipkow and Christian Prehofer. Type checking type classes. In Proc. 20th ACM Symposium on Principles of Programming Languages, pages 409–418, 1993.Google Scholar
  23. 23.
    Martion Odersky. Programming with variable functions. In Proc. International Conference on Functional Programming, September 1998.Google Scholar
  24. 24.
    Martin Odersky. Functional nets. In Proc. European Symposium on Programming, number 1782 in LNCS, pages 1–25. Springer Verlag, March 2000.zbMATHGoogle Scholar
  25. 25.
    Alan Pope. The Corba Reference Guide: Understanding the Common Object Re-quest Broker Architecture. Addison Wesley, 1998.Google Scholar
  26. 26.
    Clemes Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1998.Google Scholar
  27. 27.
    P. Tarr, H. Ossher, W. Harrison, and S. “Sutton Jr.”. N degrees of separation: Multi-dimensional separation of concerns. In Proc. ICSE, pages 107–119, 1999.Google Scholar
  28. 28.
    Philip Wadler. Views: a way for pattern matching to cohabit with data abstraction. In 14’th ACM Symposium on Principles of Programming Languages, Munich, Germany, January 1987.Google Scholar
  29. 29.
    Philip Wadler and Stephen Blott. How to make ad-hoc polymorphism less ad-hoc. In Proc. 16th ACM Symposium on Principles of Programming Languages, pages 60–76, January 1989.Google Scholar
  30. 30.
    Gio Wiederholt, Peter Wegner, and Stefano Ceri. Towards megaprogramming. Communications of the ACM, 1992. November.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Martin Odersky
    • 1
  1. 1.École Polytechnique Fédérale de LausanneLausanneGermany

Personalised recommendations