Skip to main content

An application framework for module composition tools

  • Conference paper
  • First Online:

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

Abstract

This paper shows that class inheritance, viewed as a mechanism for composing self-referential namespaces, is a broadly applicable concept. We show that several kinds of software artifacts can be modeled as self-referential namespaces, and software tools based on a model of composition of namespaces can effectively manage these artifacts. We describe four such tools: an interpreter for compositionally modular Scheme, a compositional linker for object files, a compositional interface definition language, and a compositional document processing tool. We show that these tools benefit significantly from incorporating inheritance-based reuse. Furthermore, the implementation of these tools share much in common since they are based on the same underlying model. We describe a reusable OO framework for efficiently constructing such tools. Three of the above tools were built by directly reusing the application framework, and the fourth evolved in parallel with it. We provide reuse statistics and experiences with the development of our framework and its completions.

This research was sponsored by the Defense Advanced Research Projects Agency under contract number DABT63-94-C-0058, and by the Office of Naval Research under grant number N00014-95-1-0737.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Roberto M. Amadio and Luca Cardelli. Subtyping recursive types. ACM Transactions on Programming Languages and Systems, 15(4), September 1993.

    Google Scholar 

  2. Joshua Auerbach and James Russell. The Concert signature representation: IDL as intermediate language. In Jeanette Wing, editor, Proc. of Workshop on Interface Definition Languages, pages 1–12, January 1994. Also available as ACM SIGPLAN Notices 29 (8), August 1994.

    Google Scholar 

  3. Guruduth Banavar. An Application Framework for Compositional Modularity. PhD thesis, University of Utah, Salt Lake City, Utah, 1995. Available as report CSTD-95-011.

    Google Scholar 

  4. Guruduth Banavar, Gary Lindstrom, and Douglas Orr. Type-safe composition of object modules. In Computer Systems and Education, pages 188–200. Tata McGraw Hill Publishing Company, Limited, New Delhi, India, June 22–25, 1994. ISBN 0-07-462044-4. Also available as University of Utah Technical Report UUCS-94-001.

    Google Scholar 

  5. Guruduth Banavar, Douglas Orr, and Gary Lindstrom. Layered, server-based support for object-oriented application development. In Luis-Felipe Cabrera and Marvin Theimer, editors, Proceedings of the Fourth International Workshop on Object Orientation in Operating Systems, pages 2–11, Lund, Sweden, August 14–15 1995. EEEE Computer Society. Also available as University of Utah TR UUCS-95-007.

    Google Scholar 

  6. Gilad Bracha and Gary Lindstrom. Modularity meets inheritance. In Proc. International Conference on Computer Languages, pages 282–290, San Francisco, CA, April 20–23, 1992. IEEE Computer Society. Also available as University of Utah Technical Report UUCS-91-017.

    Google Scholar 

  7. Kim B. Bruce. A paradigmatic object-oriented programming language: Design, static typing and semantics. J. Functional Programming, 4(2):127–206, 1994.

    Article  MATH  MathSciNet  Google Scholar 

  8. P. Canning, W. Cook, W. Hill, and W. Olthoff. Interfaces for strongly-typed object-oriented programming. In Norman Meyrowitz, editor, Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 457–467, 1989.

    Google Scholar 

  9. Luca Cardelli and John C. Mitchell. Operations on records. Technical Report 48, Digital Equipment Corporation Systems Research Center, August 1989.

    Google Scholar 

  10. William Clinger and Jonathan Rees. Revised4 report on the algorithmic language Scheme. ACM Lisp Pointers, 4(3), 1991.

    Google Scholar 

  11. William Cook, Walter Hill, and Peter Canning. Inheritance is not subtyping. In Carl Gunter and John Mitchell, editors, Theoretical Aspects of Object-Oriented Programming, pages 497–517. MIT Press, 1994.

    Google Scholar 

  12. William Cook and Jen Palsberg. A denotational semantics of inheritance and its correctness. In Proc. ACM Conf. on Object-Oriented Programming: Systems, Languages and Applications, pages 433–444, 1989.

    Google Scholar 

  13. Pavel Curtis and James Rauen. A module system for Scheme. In Conference Record of the ACM Lisp and Functional Programming. ACM, 1990.

    Google Scholar 

  14. Margaret A. Ellis and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, Reading, MA, 1990.

    Google Scholar 

  15. Erick Gallesio. STk reference manual. Version 2.1, 1993/94.

    Google Scholar 

  16. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Professional Computing Series. Addison-Wesley Publishing Company, Reading, Massachusetts, 1995.

    Google Scholar 

  17. Graham Hamilton and Sanjan Radia. Using interface inheritance to address problems in system software evolution. In Jeanette Wing, editor, Proc. of Workshop on Interface Definition Languages, pages 119–128, January 1994. Available as August 1994 issue of ACM SIGPLAN Notices.

    Google Scholar 

  18. Suresh Jagannathan. Metalevel building blocks for modular systems. ACM Transactions on Programming Languages and Systems, 16(3):456–492, May 1994.

    Article  Google Scholar 

  19. Dinesh Katiyar, David Luckham, and John Mitchell. A type system for prototyping languages. In Proc. of the ACM Symp. on Principles of Programming Languages, pages 138–150, Portland, OR, January 1994. ACM.

    Google Scholar 

  20. Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Moller-Pedersen, and Kristen Nygaard. The BETA programming language. In Research Directions in Object-Oriented Programming, pages 7–48. MIT Press, 1987.

    Google Scholar 

  21. Leslie Lamport. LATEX, a Document Processing System. Addison Wesley Publishing Company, Reading, MA, 1986.

    Google Scholar 

  22. Object Management Group. The Common Object Request Broker: Architecture and Specification, December 1991. Revision 1.1.

    Google Scholar 

  23. Douglas B. Orr and Robert W. Mecklenburg. OMOS — An object server for program execution. In Proc. International Workshop on Object Oriented Operating Systems, pages 200–209, Paris, September 1992. IEEE Computer Society. Also available as technical report UUCS-92-033.

    Google Scholar 

  24. Jonathan Rees. Another module system for Scheme. Included in the Scheme 48 distribution, 1993.

    Google Scholar 

  25. Wayne Rossberg, Edward Smith, and Angelica Matinkhah. Structured text system. US Patent Number 5,341,469, August 1994.

    Google Scholar 

  26. Sho-Huan Simon Tung. Interactive modular programming in Scheme. In Proceedings of the ACM Lisp and Functional Programming Conference, pages pages 86–95. ACM, 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Pierre Cointe

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Banavar, G., Lindstrom, G. (1996). An application framework for module composition tools. In: Cointe, P. (eds) ECOOP ’96 — Object-Oriented Programming. ECOOP 1996. Lecture Notes in Computer Science, vol 1098. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0053058

Download citation

  • DOI: https://doi.org/10.1007/BFb0053058

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61439-5

  • Online ISBN: 978-3-540-68570-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics