[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/646157.679861guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

A Basic Model of Typed Components

Published: 12 June 2000 Publication History

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 type-safety property. We also discuss an extension to the Java language aimed at supporting the proposed model, and some implementation issues.

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.
[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.
[3]
Gilad Bracha. The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. Ph.D. thesis, Dept. of Computer Science, University of Utah, March 1992.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[16]
Dinesh Katiyar, David Luckham, John Mitchell, and Sigurd Meldal. Polymorphism and subtyping in interfaces. ACM SIGPLAN Notices, 29(8):22-34, August 1994.
[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.
[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.
[19]
Boris Magnusson. Code reuse considered harmful. J. of Object-Oriented Programming, 4(3), November 1991.
[20]
Thomas J. Mowbray and William A. Ruh. Inside CORBA: Distributed Object Standards and Applications. Addison-Wesley, Reading, MA, USA, 1997.
[21]
Dale Rogerson. Inside COM: Microsoft's Component Object Model. Microsoft Press, 1997.
[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.
[23]
Clemens Szyperski. Component Software: Beyond Object-Oriented Programming. ACM Press and Addison-Wesley, New York, N.Y., 1998.
[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.
[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.
[26]
Wolfgang Weck and Clemens Szypersky. Do we need inheritance? In Proceedings of the Workshop on Composability Issues on Object-Orientation (ECOOP'96), 1996.

Cited By

View all
  • (2017)CopperProceedings of the 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering10.5555/3101282.3101289(29-35)Online publication date: 20-May-2017
  • (2013)Design-driven development methodology for resilient computingProceedings of the 16th International ACM Sigsoft symposium on Component-based software engineering10.1145/2465449.2465458(59-64)Online publication date: 17-Jun-2013
  • (2013)Reference Monitors for Security and Interoperability in OAuth 2.0Revised Selected Papers of the 8th International Workshop on Data Privacy Management and Autonomous Spontaneous Security - Volume 824710.1007/978-3-642-54568-9_15(235-249)Online publication date: 12-Sep-2013
  • Show More Cited By
  1. A Basic Model of Typed Components

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    ECOOP '00: Proceedings of the 14th European Conference on Object-Oriented Programming
    June 2000
    491 pages
    ISBN:3540676600

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 12 June 2000

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 12 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2017)CopperProceedings of the 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering10.5555/3101282.3101289(29-35)Online publication date: 20-May-2017
    • (2013)Design-driven development methodology for resilient computingProceedings of the 16th International ACM Sigsoft symposium on Component-based software engineering10.1145/2465449.2465458(59-64)Online publication date: 17-Jun-2013
    • (2013)Reference Monitors for Security and Interoperability in OAuth 2.0Revised Selected Papers of the 8th International Workshop on Data Privacy Management and Autonomous Spontaneous Security - Volume 824710.1007/978-3-642-54568-9_15(235-249)Online publication date: 12-Sep-2013
    • (2012)An inheritance system for structural & behavioral reuse in component-based software programmingACM SIGPLAN Notices10.1145/2480361.237141148:3(60-69)Online publication date: 26-Sep-2012
    • (2012)An inheritance system for structural & behavioral reuse in component-based software programmingProceedings of the 11th International Conference on Generative Programming and Component Engineering10.1145/2371401.2371411(60-69)Online publication date: 26-Sep-2012
    • (2010)MMSAAdvances in Multimedia10.1155/2010/3860352010(1-17)Online publication date: 1-Jan-2010
    • (2009)A generative programming approach to developing pervasive computing systemsACM SIGPLAN Notices10.1145/1837852.162162945:2(137-146)Online publication date: 4-Oct-2009
    • (2009)A generative programming approach to developing pervasive computing systemsProceedings of the eighth international conference on Generative programming and component engineering10.1145/1621607.1621629(137-146)Online publication date: 4-Oct-2009
    • (2007)A higher abstraction level using first-class inheritance relationsProceedings of the 21st European conference on Object-Oriented Programming10.5555/2394758.2394786(425-449)Online publication date: 30-Jul-2007
    • (2007)ArchC#Proceedings of the 2007 international conference on Fundamentals of software engineering10.5555/1775223.1775254(432-439)Online publication date: 17-Apr-2007
    • Show More Cited By

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media