Modules with Interfaces for Dynamic Linking and Communication

  • Yu David Liu
  • Scott F. Smith
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3086)


Module systems are well known as a means for giving clear interfaces for the static linking of code. This paper shows how adding explicit interfaces to modules for 1) dynamic linking and 2) cross-computation communication can increase the declarative, encapsulated nature of modules, and build a stronger foundation for language-based security and version control. We term these new modules Assemblages.


Sensor Node Module System Type System Operational Semantic Reduction Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AG97]
    Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)CrossRefGoogle Scholar
  2. [ASCN03]
    Aldrich, J., Sazawal, V., Chambers, C., Notkin, D.: Language support for connector abstractions. In: Proceedings of the Seventeenth European Conference on Object-Oriented Programming (June 2003)Google Scholar
  3. [AZ02]
    Ancona, D., Zucca, E.: A calculus of module systems. Journal of functional programming 11, 91–132 (2002)MathSciNetGoogle Scholar
  4. [BC90]
    Bracha, G., Cook, W.: Mixin-based inheritance. In: Meyrowitz, N. (ed.) Proceedings of OOPSLA/ECOOP, Ottawa, Canada, pp. 303–311. ACM Press, New York (1990)CrossRefGoogle Scholar
  5. [BHSS03]
    Bierman, G., Hicks, M., Sewell, P., Stoyle, G.: Formalizing dynamic software updating (2003)Google Scholar
  6. [Blo83]
    Bloom, T.: Dynamic module replacement in a distributed programming system. Technical Report MIT/LCS/TR-303 (1983)Google Scholar
  7. [Car97]
    Cardelli, L.: Program fragments, linking, and modularization. In: Conference Record of POPL 1997: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 266–277 (1997)Google Scholar
  8. [CBGM03]
    Corwin, J., Bacon, D.F., Grove, D., Murthy, C.: MJ: a rational module system for java and its applications. In: Proceedings of the 18th ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, pp. 241–254 (2003)Google Scholar
  9. [DEW99]
    Drossopoulou, S., Eisenbach, S., Wragg, D.: A fragment calculus towards a model of separate compilation, linking and binary compatibility. Logic in Computer Science, 147–156 (1999)Google Scholar
  10. [DLE03]
    Drossopoulou, S., Lagorio, G., Eisenbach, S.: Flexible models for dynamic linking. In: 12th European Symposium on Programming (2003)Google Scholar
  11. [DS96]
    Duggan, D., Sourelis, C.: Mixin modules. In: Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP 1996), vol. 31(6), pp. 262–273 (1996)Google Scholar
  12. [FF98]
    Flatt, M., Felleisen, M.: Units: Cool modules for HOT languages. In: Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, pp. 236–248 (1998)Google Scholar
  13. [HL02]
    Hirschowitz, T., Leroy, X.: Mixin modules in a call-by-value setting. In: European Symposium on Programming, pp. 6–20 (2002)Google Scholar
  14. [HMN01]
    Hicks, M.W., Moore, J.T., Nettles, S.: Dynamic software updating. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 13–23 (2001)Google Scholar
  15. [HSW+00]
    Hill, J., Szewczyk, R., Woo, A., Hollar, S., Culler, D.E., Pister, K.S.J.: System architecture directions for networked sensors. In: Architectural Support for Programming Languages and Operating Systems, pp. 93–104 (2000)Google Scholar
  16. [LB98]
    Liang, S., Bracha, G.: Dynamic class loading in the Java virtual machine. In: Conference on Object-oriented programming, systems, languages, and applications (OOPSLA 1998), pp. 36–44 (1998)Google Scholar
  17. [LS04]
    Liu, Y.D., Smith, S.F.: Modules With Interfaces for Dynamic Linking and Communication (long version) Technical report, Baltimore, Maryland (March 2004),
  18. [Mac84]
    MacQueen, D.: Modules for Standard ML. In: Proceedings of ACM Conference on Lisp and Functional Programming, pp. 409–423 (1984)Google Scholar
  19. [MFH01]
    McDirmid, S., Flatt, M., Hsieh, W.: Jiazzi: New-age components for old-fashioned Java. In: Proc. of OOPSLA (October 2001)Google Scholar
  20. [RS02]
    Rinat, R., Smith, S.: Modular internet programming with cells. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 257. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  21. [SPW03]
    Sridhar, N., Pike, S.M., Weide, B.W.: Dynamic module replacement in distributed protocols. In: Proceedings of the 23rd International Conference on Distributed Computing Systems (May 2003)Google Scholar
  22. [Szy98]
    Szyperski, C.: Component Software: Beyond Object-Oriented Programming. ACM Press and Addison-Wesley, New York (1998)Google Scholar
  23. [WV00]
    Wells, J.B., Vestergaard, R.: Equational reasoning for linking with first-class primitive modules. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, p. 412. Springer, Heidelberg (2000)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Yu David Liu
    • 1
  • Scott F. Smith
    • 1
  1. 1.Department of Computer ScienceThe Johns Hopkins University 

Personalised recommendations