Skip to main content

Mixin Modules for Dynamic Rebinding

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3705))

Abstract

Dynamic rebinding is the ability of changing the definitions of names at execution time. While dynamic rebinding is clearly useful in practice, and increasingly needed in modern systems, most programming languages provide only limited and ad-hoc mechanisms, and no adequate semantic understanding currently exists.

Here, we provide a simple and powerful mechanism for dynamic rebinding by means of a calculus CMS l,v of mixin modules (mutually recursive modules allowing redefinition of components) where, differently from the traditional approach, module operations can be performed after selecting and executing a module component: in this way, execution can refer to virtual components, which can be rebound when module operators are executed. In particular, in our calculus module operations are performed on demand, when execution would otherwise get stuck.

We provide a sound type system, which ensures that execution never tries to access module components which cannot become available, and show how the calculus can be used to encode a variety of real-world dynamic rebinding mechanisms.

Partially supported by Dynamic Assembly, Reconfiguration and Type-checking – EC project IST-2001-33477, APPSEM II – Thematic network IST-2001-38957i, and MIUR EOS – Extensible Object Systems.

An erratum to this chapter can be found at http://dx.doi.org/10.1007/11580850_20 .

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abadi, M., Cardelli, L.: A Theory of Objects. Monographs in Computer Science. Springer, Heidelberg (1996)

    MATH  Google Scholar 

  2. Abadi, M., Gonthier, G., Werner, B.: Choice in dynamic linking. In: Walukiewicz, I. (ed.) FOSSACS 2004. LNCS, vol. 2987, pp. 12–26. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  3. Ancona, D., Anderson, C., Damiani, F., Drossopoulou, S., Giannini, P., Zucca, E.: A type preserving translation of Fickle into Java. Electonical Notes in Theoretical Computer Science, vol. 62 (2002)

    Google Scholar 

  4. Ancona, D., Fagorzi, S., Zucca, E.: A calculus for dynamic linking. In: Blundo, C., Laneve, C. (eds.) ICTCS 2003. LNCS, vol. 2841, pp. 284–301. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  5. Ancona, D., Fagorzi, S., Zucca, E.: A calculus for dynamic reconfiguration with low priority linking. In: WOOD 2004: Workshop on Object-Oriented Developments. Electonical Notes in Theoretical Computer Science (2004) (to appear)

    Google Scholar 

  6. Ancona, D., Fagorzi, S., Zucca, E.: A calculus with lazy module operators. In: Levy, J.-J., Mayr, E.W., Mitchell, J.C. (eds.) TCS 2004 (IFIP Int. Conf. on Theoretical Computer Science), pp. 423–436. Kluwer Academic Publishers, Dordrecht (2004)

    Google Scholar 

  7. Ancona, D., Zucca, E.: A calculus of module systems. Journ. of Functional Programming 12(2), 91–132 (2002)

    MATH  MathSciNet  Google Scholar 

  8. Ariola, Z.M., Felleisen, M.: The call-by-need lambda calculus. Journ. of Functional Programming 7(3), 265–301 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  9. Bierman, G., Hicks, M., Sewell, P., Stoyle, G.: Formalizing dynamic software updating (Extended Abstract). In: USE 2003 - the Second International Workshop on Unanticipated Software Evolution (2003)

    Google Scholar 

  10. Bierman, G., Hicks, M., Sewell, P., Stoyle, G., Wansbrough, K.: Dynamic rebinding for marshalling and update, with destruct-time λ. In: Runciman, C., Shivers, O. (eds.) Intl. Conf. on Functional Programming 2003, pp. 99–110. ACM Press, New York (2004)

    Google Scholar 

  11. Bracha, G.: The Programming Language JIGSAW: Mixins, Modularity and Multiple Inheritance. PhD thesis, Department of Comp. Sci., Univ. of Utah (1992)

    Google Scholar 

  12. Cardelli, L.: Program fragments, linking, and modularization. In: ACM Symp. on Principles of Programming Languages 1997, pp. 266–277. ACM Press, New York (1997)

    Google Scholar 

  13. Cardelli, L., Leroy, X.: Abstract types and the dot notation. Technical Report 56, DEC SRC (1990)

    Google Scholar 

  14. Drossopoulou, S.: Towards an abstract model of Java dynamic linking and verfication. In: Harper, R. (ed.) TIC 2000 - Third Workshop on Types in Compilation (Selected Papers). LNCS, vol. 2071, pp. 53–84. Springer, Heidelberg (2001)

    Google Scholar 

  15. Drossopoulou, S., Lagorio, G., Eisenbach, S.: Flexible models for dynamic linking. In: Degano, P. (ed.) ESOP 2003. LNCS, vol. 2618, pp. 38–53. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  16. Fagorzi, S.: Module Calculi for Dynamic Reconfiguration. PhD thesis, Dipartimento di Informatica e Scienze dell’Informazione, Università di Genova (2005)

    Google Scholar 

  17. Fagorzi, S., Zucca, E.: A calculus for reconfiguration. In: DCM 2005 - International Workshop on Developments in Computational Models, (To appear) (July 2005)

    Google Scholar 

  18. Felleisen, M., Friedman, D.P.: Control operators, the SECD-machine, and the lambda-calculus. In: 3rd Working Conference on the Formal Description of Programming Concepts, Ebberup, Denmark, August 1986, pp. 193–219 (1986)

    Google Scholar 

  19. Hirschowitz, T., Leroy, X.: Mixin modules in a call-by-value setting. In: Le Métayer, D. (ed.) ESOP 2002. LNCS, vol. 2305, pp. 6–20. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  20. Liu, Y.D., Smith, S.F.: Modules with interfaces for dynamic linking and communication. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 414–439. Springer, Heidelberg (2004)

    Google Scholar 

  21. Machkasova, E., Turbak, F.A.: A calculus for link-time compilation. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, pp. 260–274. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  22. Mens, T., Kniesel, G.: Workshop on foundations of unanticipated software evolution. ETAPS 2004 (2004), http://joint.org/fuse2004/

  23. Wells, J.B., Vestergaard, R.: Confluent equational reasoning for linking with first-class primitive modules. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, pp. 412–428. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ancona, D., Fagorzi, S., Zucca, E. (2005). Mixin Modules for Dynamic Rebinding. In: De Nicola, R., Sangiorgi, D. (eds) Trustworthy Global Computing. TGC 2005. Lecture Notes in Computer Science, vol 3705. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11580850_15

Download citation

  • DOI: https://doi.org/10.1007/11580850_15

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-30007-6

  • Online ISBN: 978-3-540-31483-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics