Abstract
This paper studies specific language level abstractions for component-based programming. We propose a simple model which captures some basic ingredients—like explicit context dependence, dynamic binding and subtype polymorphism, late (dynamic) composition, and avoidance of inheritance in favor of object composition - that several authors have defended to be central to black-box object-oriented component programming styles. The model is expressed by a core imperative typed calculus, in which components are first-class entities, and whose basic constructs enable the composition, scripting, instantiation and definition of atomic components. Some motivating programming examples are presented, and the operational semantics is shown to enjoy a typesafety property. We also discuss an extension to the Java language aimed at supporting the proposed model, and some implementation issues.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Davide Ancona and Elena Zucca. A primitive calculus of module systems. In Michael Hanus and Mario Rodríguez-Artalejo, editors, Algebraic and Logic Programming, 5th International Conference, ALP’96, volume 1139 of Lecture Notes in Computer Science, pages 179–193, Aachen, Germany, 25–27 September 1996. Springer-Verlag.
Viviana Bono, Amit Patel, and Vitaly Shmatikov. A core calculus of classes and mixins. In Rachid Guerraoui, editor, ECOOP’ 99-Object-Oriented Programming 13th European Conference, Lisbon Portugal, volume 1628 of Lecture Notes in Computer Science, pages 43–66. Springer-Verlag, New York, N.Y., June 1999.
Gilad Bracha. The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. Ph.D. thesis, Dept. of Computer Science, University of Utah, March 1992.
Gilad Bracha and William Cook. Mixin-based inheritance. In Norman Meyrowitz, editor, Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications / Proceedings of the European Conference on Object-Oriented Programming, pages 303–311, Ottawa, Canada, October 1990. ACM Press.
Martin Buchi and Wolfgang Weck. Compound types for Java. In Proceedings of the 13th Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA-98), volume 33, 10 of ACM SIGPLAN Notices, pages 362–373, New York, 1998. ACM Press.
Luca Cardelli. Typeful programming. In E. J. Neuhold and M. Paul, editors, Formal Description of Programming Concepts, IFIP State-of-the-Art Reports, pages 431–507. Springer-Verlag, New York, N.Y., 1991.
Luca Cardelli. Program fragments, linking, and modularization. In Conference Record of POPL’ 97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 266–277, Paris, France, 15–17 January 1997.
Robert Bruce Findler and Matthew Flatt. Modular object-oriented programming with units and mixins. In Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP’ 98), volume 34(1) of ACM SIGPLAN Notices, pages 94–104. ACM, June 1999.
Matthew Flatt and Matthias Felleisen. Units: Cool modules for HOT languages. In Proceedings of the ACM SIGPLAN’98 Conference on Programming Language Design and Implementation (PLDI), pages 236–248, Montreal, Canada, 17–19 June 1998.
Matthew Flatt, Shriram Krishnamurthi, and Matthias Felleisen. Classes and mixins. In Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California, pages 171–183, New York, N.Y., January 1998. ACM.
I. R. Forman, M. H. Conner, S. H. Danforth, and L. K. Raper. Ira Forman, “Release-to-Release Binary Compatibility in SOM”. ACM SIGPLAN Notices OOPSLA’95, 30(10):426–438, October 1995.
Neal Glew and Greg Morrisett. Type-safe linking and modular assembly language. In Conference Record of POPL 99: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas, pages 250–261, New York, N.Y., January 1999. ACM.
Robert Harper and Mark Lillibridge. A type-theoretic approach to higher-order modules with sharing. In ACM, editor, Conference record of POPL’ 94, 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages: papers presented at the Symposium: Portland, Oregon, January 17–21, 1994, pages 123–137, New York, NY, USA, 1994. ACM Press.
JavaSoft. JavaBeans™. http://java.sun.com/beans, December 1996. Version 1.00-A.
Dinesh Katiyar, David Luckham, and John Mitchell. A type system for prototyping languages. In ACM, editor, Conference record of POPL’ 94, 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages: papers presented at the Symposium: Portland, Oregon, January 17–21, 1994, pages 138–150, New York, NY, USA, 1994. ACM Press.
Dinesh Katiyar, David Luckham, John Mitchell, and Sigurd Meldal. Polymorphism and subtyping in interfaces. ACM SIGPLAN Notices, 29(8):22–34, August 1994.
John Lamping. Typing the specialization interface. In Andreas Paepcke, editor, Proceedings of the 8th Annual Conference on Object-Oriented Programming Systems, Languages and Applications, pages 201–214, Washington, DC, USA, 1993.
Sheng Liang and Gilad Bracha. Dynamic class loading in the Java™ virtual machine. In Proceedings of the 13th Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA-98), volume 33, 10 of ACM SIGPLAN Notices, pages 36–44. ACM Press, 1998.
Boris Magnusson. Code reuse considered harmful. J. of Object-Oriented Programming, 4(3), November 1991.
Thomas J. Mowbray and William A. Ruh. Inside CORBA: Distributed Object Standards and Applications. Addison-Wesley, Reading, MA, USA, 1997.
Dale Rogerson. Inside COM: Microsoft’s Component Object Model. Microsoft Press, 1997.
João Costa Seco and Luís Caires. A basic model of typed components. Technical report, Departamento de Informática, Universidade Nova de Lisboa, 2000.
Clemens Szyperski. Component Software: Beyond Object-Oriented Programming. ACM Press and Addison-Wesley, New York, N.Y., 1998.
David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Hölzle. Organizing programs without classes. Lisp and Symbolic Computation, 4(3):223–242, July 1991.
Wolfgang Weck. Inheritance using contracts and object composition. In Wolfgang Weck, Jan Bosch, and Clemens Szyperski, editors, Proceedings of the Second International Workshop on Component-Oriented Programming (WCOP’97), pages 105–12. Turku Centre for Computer Science, September 1997.
Wolfgang Weck and Clemens Szypersky. Do we need inheritance? In Proceedings of the Workshop on Composability Issues on Object-Orientation (ECOOP’96), 1996.
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
Seco, J.C., Caires, L. (2000). A Basic Model of Typed Components. In: Bertino, E. (eds) ECOOP 2000 — Object-Oriented Programming. ECOOP 2000. Lecture Notes in Computer Science, vol 1850. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45102-1_6
Download citation
DOI: https://doi.org/10.1007/3-540-45102-1_6
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67660-7
Online ISBN: 978-3-540-45102-0
eBook Packages: Springer Book Archive