A language adaptation architecture for reflective concurrent systems

  • C. H. Lin
  • E. H. Huang
  • T. Elrad
Part of the IFIP Advances in Information and Communication Technology book series (IFIPAICT)


To address new requirements, language designers must often add new notations to an existing language. The new features may be optimal for some applications but unacceptable in others. Once the features have been added, programmers will be restricted to that resulting language. An open language implementation offers a solution to this drawback. It permits users to tailor a language by either customizing the existing semantics or by modifying the syntax. We present a reflective architecture to support language adaptation capability. Our approach enables users (language designers/programmers) to satisfy new requirements in a base language without changing the compiler while promoting reuse of software components.


Adaptation Decision Controls Open Implementation Reflection Reuse 


  1. Aksit, M., Bosch, J., Sternen, W., and Bergmans, L. (1994). Real-time specification inheritance anomalies and real-time filters, LNCS 821, Springer Verlag„ pp. 386–407.Google Scholar
  2. America, P., and Linden, F. (1990). A parallel object-oriented language with inheritance and subtyping. OOPSLA 90 Proceedings, pp. 161–168.CrossRefGoogle Scholar
  3. Andrews, G.R., Olsson, R.A., and Coffin, M. (1988). An overview of the SR language and implementation. TOPLAS, 10, 1, pp. 51–86.Google Scholar
  4. Bosch, J., (1997). ECOOP’97 Workshop on Language Support for Design Patterns and Frameworks.Google Scholar
  5. Caromel, D. (1993). Toward a method of object-oriented concurrent programming. Communications of the ACM, Vol. 36, No. 9, pp. 90–102.CrossRefGoogle Scholar
  6. Chiba, S. (1995). A meta object protocol for C++. In Proceedings of OOPSLA’95.Google Scholar
  7. DoD 95. (1995). Ada 95 Reference Manual. ANSI/IS/IEC-8652:1995, U.S. Government.Google Scholar
  8. Ada9x. (1988) Proceedings of the 1988 International Workshop on Real-Time Ada Issues, Moretonhampstead, England, May 1988. Also Ada Letters 8, 7.Google Scholar
  9. Elrad, T., and Maymir-Ducharme, F. (1986). Distributed language design: constructs for controlling preferences. Proceedings of the 1986 International Conference on Parallel Processing.Google Scholar
  10. Elrad, T., and Verun, U. (1996). A hierarchical and reflective framework for synchronization and scheduling controls. Future Generation Computer Systems (457), pp. 1–14.Google Scholar
  11. Gehani, N. (1992). Capsules: a shared memory access mechanism for concurrent C/C++. AT000000000T Bell Laboratories, NJ.Google Scholar
  12. Ishikawa, Y., Hori, A., Sato, M., Matsuda, M., Nolte, J., Tezka, H., and Kubota, K. (1996). Design and implementation of meta-level architecture in C++–MPC++ Approach. Proceedings of Reflection Conference, pp. 125–136.Google Scholar
  13. Kafura, G., Mukherji, M., and Lavender, G. (1993). ACT++ 2.0: A class library for concurrent programming in C++ using actors, JOOP, 6, 6, pp. 47–55.Google Scholar
  14. Kiczales, G. (1996). Beyond the black box: open implementation. IEEE Software, pp. 137–142.Google Scholar
  15. Matsuoka, S., and Yonezawa, A. (1993). Analysis of inheritance anomaly in object-oriented languages, in Research Directions in Object-Based Concurrency (ed. G. Agha, P. Wegner, A. Yonezawa), The MIT Press, pp. 107–150.Google Scholar
  16. Matsuoka, S., Watanabe, T., and Yonezawa, A. (1991). Hybrid group reflective architecture for object-oriented concurrent reflective programming, in Proceedings of European Conference on Object-Oriented Programming, pp. 231–250.CrossRefGoogle Scholar
  17. Nierstrasz, O. (1993). Composing Active Objects: The next 700 concurrent object-oriented languages, in Research Directions in Object-Based Concurrency (ed. Agha, G., Wegner, P., and Yonezawa, A.), MIT Press, pp. 151–174.Google Scholar
  18. Okamura, H., and Ishikawa, Y., (1994). Object location control using meta-level programming, in Proceedings of ECOOP94, Lecture Notes in Computer Science 821, Springer-Verlag, pp. 299–319.CrossRefGoogle Scholar
  19. Olsson, R.A., and McNamee, C.M. (1992). Inter-entry selection: non-determinism and explicit control mechanisms. Computer Languages, 17, 4, pp. 269–282.CrossRefGoogle Scholar
  20. Tomlinson, C., and Singh, V. (1989). Inheritance and synchronization with enabled-sets.‘ Proceedings of OOPSLA ’89, ACM SIGPLAN Notices, 24, pp. 103–112.CrossRefGoogle Scholar
  21. Yonezawa, A., Shibayama, E., Takada, T., and Honda, Y. (1993). Modeling and programming in an object-oriented language ABCL/1. Object-Oriented Concurrent Programming (ed. Yonezawa A. and Tokoro M.), The MIT Press, pp. 55–90.Google Scholar

Copyright information

© IFIP 1998

Authors and Affiliations

  • C. H. Lin
    • 1
  • E. H. Huang
    • 2
  • T. Elrad
    • 3
  1. 1.National Institute of Technology in KaohsiungTaiwan
  2. 2.Lucent Technologies, IncUSA
  3. 3.Illinois Institute of TechnologyUSA

Personalised recommendations