Skip to main content

Parameterized Modules for Classes and Extensible Functions

  • Conference paper
ECOOP 2006 – Object-Oriented Programming (ECOOP 2006)

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

Included in the following conference series:

Abstract

We present F(Eml), a language that combines classes, extensible functions, symmetric multiple dispatching, and a practical system for parameterized modules. Parameterized modules permit subclasses and function extensions to be defined and typechecked once, and then reused to extend multiple argument modules. F(Eml)’s predecessor, Eml, supported classes and extensible functions with multiple dispatch, but its support for parameterized modules was weak. F(Eml)’s key novel features are alias declarations, generalized type relations in module signatures, and a nontrivial definition of signature subsumption.

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
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

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. Ancona, D., Zucca, E.: True Modules for Java-like Languages. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  2. Aracic, I., Gasiunas, V., Mezini, M., Ostermann, K.: An Overview of CaesarJ. In: Rashid, A., Aksit, M. (eds.) Transactions on Aspect-Oriented Software Development I. LNCS, vol. 3880, pp. 135–173. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  3. Bonniot, D.: Type-checking multi-methods in ML (A modular approach). In: FOOL 9 (2002)

    Google Scholar 

  4. Bourdoncle, F., Merz, S.: Type checking higher-order polymorphic multi-methods. In: 24th POPL (1997)

    Google Scholar 

  5. Bracha, G., Cook, W.: Mixin-based Inheritance. In: OOPSLA (1990)

    Google Scholar 

  6. Bracha, G., Odersky, M., Stoutamire, D., Wadler, P.: Making the Future Safe for the Past: Adding Genericity to the Java Programming Language. In: OOPSLA (1998)

    Google Scholar 

  7. Bruce, K.B., Odersky, M., Wadler, P.: A Statically safe alternative to virtual types. In: 12th ECOOP (1998)

    Google Scholar 

  8. Chambers, C.: Object-Oriented Multi-Methods in Cecil. In: 6th ECOOP (1992)

    Google Scholar 

  9. Chambers, C.: Cecil Group. The Cecil Language: Specification and Rationale. Univ. of Washington Technical Report UW-CSE-93-03-05, 1993-2004

    Google Scholar 

  10. Clifton, C., Leavens, G.T., Chambers, C., Millstein, T.: MultiJava: Modular Open Classes and Symmetric Multiple Dispatch for Java. In: OOPSLA (2000)

    Google Scholar 

  11. Dreyer, D., Crary, K., Harper, R.: A Type System for Higher-Order Modules. In: 30th POPL (2003)

    Google Scholar 

  12. Duggan, D., Sourelis, C.: Mixin modules. In: First ICFP, Philadelphia PA (1996)

    Google Scholar 

  13. Ernst, E.: Family Polymorphism. In: 15th ECOOP (June 2001)

    Google Scholar 

  14. Ernst, E., Ostermann, K., Cook, W.R.: A Virtual Class Calculus. In: POPL (2006)

    Google Scholar 

  15. Fisher, K., Reppy, J.: The design of a class mechanism for Moby. In: PLDI (June 1999)

    Google Scholar 

  16. Flatt, M., Felleisen, M.: Units: Cool modules for HOT languages. In: PLDI (1998)

    Google Scholar 

  17. Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and Mixins. In: 25th POPL (1998)

    Google Scholar 

  18. Harper, R., Lillibridge, M.: A Type-theoretic approach to higher-order modules with sharing. In: POPL (1994)

    Google Scholar 

  19. Harper, R., Stone, C.: A Type-theoretic interpretation of Standard ML. Carnegie Mellon Dept. of CS Technical Report CMU-CS-97-147 (1997)

    Google Scholar 

  20. Hirschowitz, T., Leroy, X.: Mixin Modules in a Call-by-Value Setting. In: Le Métayer, D. (ed.) ESOP 2002 and ETAPS 2002. LNCS, vol. 2305, pp. 6–20. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  21. Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: 11th ECOOP (1997)

    Google Scholar 

  22. Lee, K., Chambers, C.: Parameterized modules for extensible classes and functions. Univ. of Washington Technical Report UW-CSE-2005-07-01, 2006 (forthcoming)

    Google Scholar 

  23. Leroy, X.: Manifest types, modules, and separate compilation. In: 21st POPL (1994)

    Google Scholar 

  24. Lopez-Herrejon, R.E., Batory, D., Cook, W.: Evaluating Support for Features in Advanced Modularization Technologies. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 169–194. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  25. Madsen, O.L., Møller-Pedersen, B.: Virtual classes: a powerful mechanism in object-oriented programming. In: Conf. OOPSLA (1989)

    Google Scholar 

  26. McDirmid, S., Flatt, M., Hsieh, W.C.: Jiazzi: New age modules for old-fashioned Java. In: 16th OOPSLA, Tampa Bay FL, pp. 211–222 (2001)

    Google Scholar 

  27. Millstein, T., Chambers, C.: Modular Statically Typed Multimethods. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  28. Millstein, T., Bleckner, C., Chambers, C.: Modular Typechecking for Hierarchically Extensible Datatypes and Functions. ACM TOPLAS 26(5), 836–889 (2004)

    Article  Google Scholar 

  29. Millstein, T., Reay, M., Chambers, C.: Relaxed MultiJava: Balancing Extensibility and Modular Typechecking. In: OOPSLA (October 2003)

    Google Scholar 

  30. Milner, R., Tofte, M., Harper, R., MacQueen, D.: Def. of Standard ML (Revised). MIT Press, Cambridge (1997)

    Google Scholar 

  31. Nystrom, N., Chong, S.S., Myers, A.C.: Scalable Extensibility via Nested Inheritance. In: OOPSLA (2004)

    Google Scholar 

  32. Odersky, M., Altherr, P., Cremet, V., Emir, B., Maneth, S., Micheloud, S., Mihaylov, N., Schinz, M., Stenman, E., Zenger, M.: An Overview of the Scala Programming Language. EPFL Technical Report IC/2004/64. EPFL Lausanne (2004)

    Google Scholar 

  33. Rémy, D., Vouillon, J.: Objective ML: a simple object-oriented extension of ML. In: 24th POPL (1997)

    Google Scholar 

  34. Reppy, J., Riecke, J.: Simple objects for Standard ML. In: PLDI 1996 (1996)

    Google Scholar 

  35. Reynolds, J.C.: User defined types and procedural data structures as complementary approaches to data abstraction. In: Gries, D. (ed.) Programming Methodology, A Collection of Articles by IFIP WG2.3, Springer, Heidelberg (1978)

    Google Scholar 

  36. Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.: Traits: Composable Units of Behavior. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, Springer, Heidelberg (2003)

    Google Scholar 

  37. Smaragdakis, Y., Batory, D.: Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration Designs. ACM TSEM 11(2), 215–255 (2002)

    Article  Google Scholar 

  38. Smith, C., Drossopoulou, S.: Chai: Traits for Java-like Languages. In: ECOOP (2005)

    Google Scholar 

  39. Stroustrup, B.: The C++ Programming Language, 3rd edn. Addison-Wesley, Reading (2000)

    Google Scholar 

  40. Thorup, K.K., Torgersen, M.: Unifying genericity – combining the benefits of virtual types and parameterized classes. In: 13th ECOOP (1999)

    Google Scholar 

  41. Wadler, P.: The Expression Problem. Java-genericity email list (November 1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lee, K., Chambers, C. (2006). Parameterized Modules for Classes and Extensible Functions. In: Thomas, D. (eds) ECOOP 2006 – Object-Oriented Programming. ECOOP 2006. Lecture Notes in Computer Science, vol 4067. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11785477_21

Download citation

  • DOI: https://doi.org/10.1007/11785477_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-35726-1

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics