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
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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.
Birrell, A. D. and B. J. Nelson, “Implementing Remote Procedure Calls,” ACM Trans. Comp. Syst., vol. 2, no. 1, pp. 39–59, 1984.
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.
Ellis, C, S. Gibbs, and G. Rein, “Groupware-Some Issues and Experiences,” Commun. of the ACM, vol. 34, no. 1, pp. 38–58, 1991.
Gehani, N. and W. Roome, “Concurrent C,” Software-Practice and Experience, vol. 16, no. 9, pp. 821–844, 1986.
Goldberg, A. and D. Robson, Smalltalk-80: The Language and Its Implementation. Addison-Wesley, 1983.
Gourhant, Y. and M. Shapiro, “FOG/C++: a Fragmented-Object Generator,” in Proc. of USENIX C++ Conference, pp. 63–74, 1990.
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.
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.
Kiczales, G., J. des Rivières, and D. G. Bobrow, The Art of the Metaobject Protocol. The MIT Press, 1991.
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.
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.
Li, K., Shared Virtual Memory on Loosely Coupled Multiprocessors. PhD thesis, Dept. of Computer Science, Yale Univ., 1986.
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.
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.
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.
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.
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.
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.
Rodriguez Jr., L. H., “Coarse-Grained Parallelism Using Metaobject Protocols,” Techincal Report SSL-91-61, XEROX PARC, Palo Alto, CA, 1991.
Smith, B. C, “Reflection and Semantics in Lisp,” in Proc. of ACM Symp. on Principles of Programming Languages, pp. 23–35, 1984.
Steele, G., Common Lisp: The Language. Digital Press, 2nd ed., 1990.
Stroustrup, B., The C++ Programming Language. Addison-Wesley, 2nd ed., 1991.
Stumm, M. and S. Zhou, “Algorithms Implementing Distributed Shared Memory,” IEEE Computer, vol. 23, no. 5, pp. 54–64, 1990.
Sun Microsystems, Network Programming Guide. Sun Microsystems, Inc., 1990.
U.S. Dept. of Defense, Reference Manual for the Ada Programming Language. ANSI/MIL-STD-1815A, 1983.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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