Skip to main content

Designing an Extensible Distributed Language with a Meta-Level Architecture

  • Conference paper
  • First Online:
ECOOP’ 93 — Object-Oriented Programming (ECOOP 1993)

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

Included in the following conference series:

Abstract

This paper presents a methodology for designing extensible languages for distributed computing. As a sample product of this methodology, which is based on a meta-level (or reflective) technique, this paper describes a variant of C++ called Open C++, in which the programmer can alter the implementation of method calls to obtain new language functionalities suitable for the programmer’s applications. This paper also presents a framework called Object Communities, which is used to help obtain various functionalities for distributed computing on top of Open C++. Because the overhead due to the meta level computation is negligible in distributed computing, this methodology is applicable to practical programming.

JSPS (Japan Society for the Promotion of Science) Fellow-DC

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. Bal, H. E., M. F. Kaashoek, and A. S. Tanenbaum, “Orca: A Language For Parallel Programming of Distributed Systems,” IEEE Trans. Softw. Eng., vol. 18, no. 3, pp. 190–205, 1992.

    Article  Google Scholar 

  2. Birrell, A. D. and B. J. Nelson, “Implementing Remote Procedure Calls,” ACM Trans. Comp. Syst., vol. 2, no. 1, pp. 39–59, 1984.

    Article  Google Scholar 

  3. Buschmann, F., K. Kiefer, F. Paulisch, and M. Stal, “The Meta-Information-Protocol: Run-Time Type Information for C++,” in Proc. of the Int’l Workshop on Reflection and Meta-Level Architecture (A. Yonezawa and B. C. Smith, eds.), pp. 82–87, 1992.

    Google Scholar 

  4. Ellis, C, S. Gibbs, and G. Rein, “Groupware-Some Issues and Experiences,” Commun. of the ACM, vol. 34, no. 1, pp. 38–58, 1991.

    Article  Google Scholar 

  5. Gehani, N. and W. Roome, “Concurrent C,” Software-Practice and Experience, vol. 16, no. 9, pp. 821–844, 1986.

    MATH  Google Scholar 

  6. Goldberg, A. and D. Robson, Smalltalk-80: The Language and Its Implementation. Addison-Wesley, 1983.

    Google Scholar 

  7. Gourhant, Y. and M. Shapiro, “FOG/C++: a Fragmented-Object Generator,” in Proc. of USENIX C++ Conference, pp. 63–74, 1990.

    Google Scholar 

  8. Herlihy, M. and B. Liskov, “A Value Transmission Method for Abstract Data Types,” ACM Trans. Prog. Lang. Syst., vol. 4, no. 4, pp. 527–551, 1982.

    Article  MATH  Google Scholar 

  9. Ichisugi, Y., S. Matsuoka, and A. Yonezawa, “RbCl: A Reflective Object-Oriented Concurrent Language without a Run-time Kernel,” in Proc. of the Int’l Workshop on Reflection and Meta-Level Architecture (A. Yonezawa and B. C. Smith, eds.), pp. 24–35, 1992.

    Google Scholar 

  10. Kiczales, G., J. des Rivières, and D. G. Bobrow, The Art of the Metaobject Protocol. The MIT Press, 1991.

    Google Scholar 

  11. Kiczales, G. and J. Lamping, “Issues in the Design and Specification of Class Libraries,” in Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 435–451, 1992.

    Google Scholar 

  12. Lamping, J., G. Kiczales, L. Rodriguez, and E. Ruf, “An Architecture for an Open Compiler,” in Proc. of the Int’l Workshop on Reflection and Meta-Level Architecture (A. Yonezawa and B. C. Smith, eds.), pp. 95–106, 1992.

    Google Scholar 

  13. Li, K., Shared Virtual Memory on Loosely Coupled Multiprocessors. PhD thesis, Dept. of Computer Science, Yale Univ., 1986.

    Google Scholar 

  14. Madany, P., P. Kougiouris, N. Islam, and R. H. Campbell, “Practical Examples of Reification and Reflection in C++,” in Proc. of the Int’l Workshop on Reflection and Meta-Level Architecture (A. Yonezawa and B. C. Smith, eds.), pp. 76–81, 1992.

    Google Scholar 

  15. Maes, P., “Concepts and Experiments in Computational Reflection,” in Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 147–155, 1987.

    Google Scholar 

  16. Masuhara, H., S. Matsuoka, T. Watanabe, and A. Yonezawa, “Object-Oriented Concurrent Reflective Languages can be Implemented Efficiently,” in Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 127–144, 1992.

    Google Scholar 

  17. Matsuoka, S., T. Watanabe, and A. Yonezawa, “Hybrid Group Reflective Architecture for Object-Oriented Concurrent Reflective Programming,” in Proc. of European Conf. on Object-Oriented Programming’ 91, no. 512 in LNCS, pp. 231–250, Springer-Verlag, 1991.

    Chapter  Google Scholar 

  18. Okamura, H., Y. Ishikawa, and M. Tokoro, “AL-1/D: A Distributed Programming System with Multi-Model Reflection Framework,” in Proc. of the Int’l Workshop on Reflection and Meta-Level Architecture (A. Yonezawa and B. C. Smith, eds.), pp. 36–47, 1992.

    Google Scholar 

  19. Rao, R., “Implementational Reflection in Silica,” in Proc. of European Conf. on Object-Oriented Programming’ 91, no. 512 in LNCS, pp. 251–267, Springer-Verlag, 1991.

    Chapter  Google Scholar 

  20. Rodriguez Jr., L. H., “Coarse-Grained Parallelism Using Metaobject Protocols,” Techincal Report SSL-91-61, XEROX PARC, Palo Alto, CA, 1991.

    Google Scholar 

  21. Smith, B. C, “Reflection and Semantics in Lisp,” in Proc. of ACM Symp. on Principles of Programming Languages, pp. 23–35, 1984.

    Google Scholar 

  22. Steele, G., Common Lisp: The Language. Digital Press, 2nd ed., 1990.

    Google Scholar 

  23. Stroustrup, B., The C++ Programming Language. Addison-Wesley, 2nd ed., 1991.

    Google Scholar 

  24. Stumm, M. and S. Zhou, “Algorithms Implementing Distributed Shared Memory,” IEEE Computer, vol. 23, no. 5, pp. 54–64, 1990.

    Google Scholar 

  25. Sun Microsystems, Network Programming Guide. Sun Microsystems, Inc., 1990.

    Google Scholar 

  26. U.S. Dept. of Defense, Reference Manual for the Ada Programming Language. ANSI/MIL-STD-1815A, 1983.

    Google Scholar 

  27. Yokote, Y., “The Apertos Reflective Operating System: The Concept and Its Implementation,” in Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 414–434, 1992.

    Google Scholar 

  28. Yokote, Y. and M. Tokoro, “The Design and Implementation of Concurrent-Smalltalk,” in Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 331–340, 1986.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Chiba, S., Masuda, T. (1993). Designing an Extensible Distributed Language with a Meta-Level Architecture. In: Nierstrasz, O.M. (eds) ECOOP’ 93 — Object-Oriented Programming. ECOOP 1993. Lecture Notes in Computer Science, vol 707. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47910-4_24

Download citation

  • DOI: https://doi.org/10.1007/3-540-47910-4_24

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57120-9

  • Online ISBN: 978-3-540-47910-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics