Skip to main content

A Basic Model of Typed Components

  • Conference paper
  • First Online:
ECOOP 2000 — Object-Oriented Programming (ECOOP 2000)

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

Included in the following conference series:

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.

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

Access this chapter

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

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

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

    Google Scholar 

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

    Google Scholar 

  3. Gilad Bracha. The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. Ph.D. thesis, Dept. of Computer Science, University of Utah, March 1992.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  14. JavaSoft. JavaBeans™. http://java.sun.com/beans, December 1996. Version 1.00-A.

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

    Google Scholar 

  16. Dinesh Katiyar, David Luckham, John Mitchell, and Sigurd Meldal. Polymorphism and subtyping in interfaces. ACM SIGPLAN Notices, 29(8):22–34, August 1994.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  19. Boris Magnusson. Code reuse considered harmful. J. of Object-Oriented Programming, 4(3), November 1991.

    Google Scholar 

  20. Thomas J. Mowbray and William A. Ruh. Inside CORBA: Distributed Object Standards and Applications. Addison-Wesley, Reading, MA, USA, 1997.

    MATH  Google Scholar 

  21. Dale Rogerson. Inside COM: Microsoft’s Component Object Model. Microsoft Press, 1997.

    Google Scholar 

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

    Google Scholar 

  23. Clemens Szyperski. Component Software: Beyond Object-Oriented Programming. ACM Press and Addison-Wesley, New York, N.Y., 1998.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  26. Wolfgang Weck and Clemens Szypersky. Do we need inheritance? In Proceedings of the Workshop on Composability Issues on Object-Orientation (ECOOP’96), 1996.

    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

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

Publish with us

Policies and ethics