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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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.
Don Box. Essential COM. Addison Wesley, 1998.
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.
Craig Chambers. Object-oriented multi-methods in Cecil. In Proc. ECOOP, 1992.
Kung Chen, Paul Hudak, and Martin Odersky. Parametric type classes. In Proc. ACM Conf. on Lisp and Functional Programming, pages 170–181, June 1992.
Robert Englander. Developing Java Beans. O’Reilly & Associates, 1997.
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
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.
William Harrison and Harold Ossher. Subject-oriented programming (a critique of pure objects). In Proc. OOPSLA, pages 411–428, September 1993.
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.
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.
Mark P. Jones. A theory of qualified types. In Proc. 4th European Symposium on Programming, pages 287–306, February 1992. Springer LNCS 582.
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.
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.
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.
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.
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.
Konstantin Läufer. Type classes with existential types. Journal of Functional Programming, May 1996.
Todd Millstein and Craig Chambers. Modular statically typed multimethods. In Proc. ECOOP, number 1628 in LNCS, pages 279–303. Springer Verlag, June 1999.
Betrand Meyer. Object-Oriented Software Construction. Prentice-Hall, 1988.
Mira Mezini, Linda Seiter, and Karl Lieberherr. Component integration with plug-gable composite adapters. In Software Architectures and Component Technology. Kluwer, 2000.
Tobias Nipkow and Christian Prehofer. Type checking type classes. In Proc. 20th ACM Symposium on Principles of Programming Languages, pages 409–418, 1993.
Martion Odersky. Programming with variable functions. In Proc. International Conference on Functional Programming, September 1998.
Martin Odersky. Functional nets. In Proc. European Symposium on Programming, number 1782 in LNCS, pages 1–25. Springer Verlag, March 2000.
Alan Pope. The Corba Reference Guide: Understanding the Common Object Re-quest Broker Architecture. Addison Wesley, 1998.
Clemes Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1998.
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.
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.
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.
Gio Wiederholt, Peter Wegner, and Stefano Ceri. Towards megaprogramming. Communications of the ACM, 1992. November.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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