Skip to main content

Objects + Views = Components?

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1912))

Abstract

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. Don Box. Essential COM. Addison Wesley, 1998.

    Google Scholar 

  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. Craig Chambers. Object-oriented multi-methods in Cecil. In Proc. ECOOP, 1992.

    Google Scholar 

  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. Robert Englander. Developing Java Beans. O’Reilly & Associates, 1997.

    Google Scholar 

  7. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.

    Google Scholar 

  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. William Harrison and Harold Ossher. Subject-oriented programming (a critique of pure objects). In Proc. OOPSLA, pages 411–428, September 1993.

    Google Scholar 

  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. 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 http://www.haskell.org/definition.

  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. 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. 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.

    MATH  Google Scholar 

  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. 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.

    Book  Google Scholar 

  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. Konstantin Läufer. Type classes with existential types. Journal of Functional Programming, May 1996.

    Google Scholar 

  19. Todd Millstein and Craig Chambers. Modular statically typed multimethods. In Proc. ECOOP, number 1628 in LNCS, pages 279–303. Springer Verlag, June 1999.

    MATH  Google Scholar 

  20. Betrand Meyer. Object-Oriented Software Construction. Prentice-Hall, 1988.

    Google Scholar 

  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. 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. Martion Odersky. Programming with variable functions. In Proc. International Conference on Functional Programming, September 1998.

    Google Scholar 

  24. Martin Odersky. Functional nets. In Proc. European Symposium on Programming, number 1782 in LNCS, pages 1–25. Springer Verlag, March 2000.

    MATH  Google Scholar 

  25. Alan Pope. The Corba Reference Guide: Understanding the Common Object Re-quest Broker Architecture. Addison Wesley, 1998.

    Google Scholar 

  26. Clemes Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1998.

    Google Scholar 

  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. 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. 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. Gio Wiederholt, Peter Wegner, and Stefano Ceri. Towards megaprogramming. Communications of the ACM, 1992. November.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Odersky, M. (2000). Objects + Views = Components?. In: Gurevich, Y., Kutter, P.W., Odersky, M., Thiele, L. (eds) Abstract State Machines - Theory and Applications. ASM 2000. Lecture Notes in Computer Science, vol 1912. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44518-8_5

Download citation

  • DOI: https://doi.org/10.1007/3-540-44518-8_5

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67959-2

  • Online ISBN: 978-3-540-44518-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics