Skip to main content
Log in

Reflection and time-dependent computing: Experiences with the R2 architecture

  • Published:
LISP and Symbolic Computation

Abstract

In this paper we present an application of computational reflection in the programming oftime-dependent systems. A time-dependent system performs its tasks according to timing specifications specified within the system or imposed from outside the system. Reflective techniques can be applied to programming time-dependent systems because (1) some application programs require the introduction of a new language construct for specifying timing requirements and (2) different applications may require domain-specific scheduling algorithms. To allow a programmer to add or modify language constructs or scheduling algorithms, however, a clear reflective architecture and program interfaces must be provided.

This paper proposes a concurrent object-based reflective architecture (R 2 architecture) for time-dependent computing. This architecture is based on anindividual reflection scheme and introduces new meta-level objects (real-time meta objects) that are responsible for time-dependent capabilities. An alarm-clock object and a scheduler object are introduced, and message protocols between them and real-time meta objects are defined. We implemented this architecture on ABCL/R2 and created the Sampled Sound Player program as an application. With this application we provided three different scheduler objects and measured the impact of different scheduling algorithms on sound playback. The measured results show that a scheduler with more complex computations at the meta level exhibited less scheduling overhead, thus was capable of better sound playback. The other example, Time-dependent Graceful Degradation Scheme, demonstrates the programming of functionality degradation triggered by failure to satisfy timing specifications.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Gul A. Agha.Actors: A Model Of Concurrent Computation In Distributed Systems. The MIT Press, 1986.

  2. Apple.Inside Macintosh Volume VI. Addison Wesley, 1992.

  3. Apple.Macintosh Common Lisp Reference. Apple Computer, Inc., 1992.

  4. Adele Goldberg and David Robson.Smalltalk-80: The Language and Its Implementation. Addison-Wesley, 1983.

  5. Carl Hewitt. Viewing control structures as patterns of passing messages.Artificial Intelligence, Vol. 8, No. 3, pp. 323–364, June 1977.

    Google Scholar 

  6. Yutaka Ishikawa. Reflection Facilities and Realistic Programming.ACM SIGPLAN NOTICES, Vol. 26, No. 8,, August 1991.

  7. Yutaka Ishikawa and Hideyuki Tokuda. An Object-Oriented Real-Time Programming Language.IEEE Computer, Vol. 25, No. 10,, October 1992.

  8. Gregor Kiczales, Jim des Rivières, and Daniel G. Bobrow.The Art of the Metaobject Protocol. The MIT Press, 1991.

  9. Kwei-Jay Lin and Swaminathan Natarajan. FLEX: Towards Flexible Real-Time Programs.Computer Languages, Vol. 16, No. 1,, 1991.

  10. Hidehiko Masuhara, Satoshi Matsuoka, Takuo Watanabe, and Akinori Yonezawa. Object-Oriented Concurrent Reflective Languages can be Implemented Efficiently. InProceedings of Object-Oriented Programming Systems, Languages and Applications in 1992. ACM Press, October 1992.

  11. Satoshi Matsuoka, Takuo Watanabe, and Akinori Yonezawa. Hybrid Group Reflective Architecture for Object-Oriented Concurrent Reflective Programming. InProceedings of ECOOP'91 European Conference on Object-Oriented Programming, pp. 231–250, July 1991. Lecture Notes in Computer Science 512.

  12. Hideaki Okamura, Yutaka Ishikawa, and Mario Tokoro. AL-1/D: A Distributed Programming System with Multi-Model Reflection Framework. InProceedings of the International Workshop on New Models for Software Architecture '92, Reflection and Meta-Level Architecture, November 1992.

  13. Lui Sha, Ragunathan Rajkumar, and John P. Lehoczky. Priority Inheritance Protocols: An Approach to Real-Time Synchronization. Technical report, Computer Science Department, Carnegie Mellon University, November 1987. Tech. Report CMU-CS-87-181.

  14. Brian Cantwell Smith. Reflection and Semantics in Lisp. InProceedings of the 11th ACM Symposium on Principles of Programming Languages, January 1984.

  15. John A. Stankovic. Misconceptions About Real-Time Computing: A Serious Problem for Next-Generation Systems.IEEE Computer, Vol. 21, No. 10,, October 1988.

  16. Guy L. Steele Jr.Common Lisp The Language, Second Edition. Educational Services. Digital Press, 1990.

  17. Kazunori Takashio and Mario Tokoro. DROL: An Object-Oriented Programming Language for Distributed Real-Time Systems. InProceedings of Object-Oriented Programming Systems, Languages and Applications in 1992. ACM, September 1992.

  18. Hideyuki Tokuda and Clifford W. Mercer. ARTS: A Distributed Real-Time Kernel.Operating Systems Review, Vol. 23, No. 3, pp. 29–53, July 1989.

    Google Scholar 

  19. Takuo Watanabe and Akinori Yonezawa. Reflection in an Object-Oriented Concurrent Language. InProceedings of Object-Oriented Programming Systems, Languages and Applications in 1988. ACM Press, September 1988. Also appeared in SIGPLAN NOTICES, Vol.23, No. 11.

  20. Takuo Watanabe and Akinori Yonezawa. Reflection in an Object-Oriented Concurrent Language. In Akinori Yonezawa, editor,ABCL An Object-Oriented Concurrent System, pp. 45–70. MIT Press, 1990.

  21. Yasuhiko Yokote. The Apertos Reflective Operating System: The Concept and Its Implementation. Technical Report SCSL-TR-92-014, Sony Computer Science Laboratory Inc., October 1992. Also appeared in the Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications 1992.

  22. A. Yonezawa, J-P. Briot, and E. Shibayama. Object-Oriented Concurrent Programming in ABCL/1. InProceedings of Object-Oriented Programming Systems, Languages and Applications in 1986. ACM Press, September–October 1986. Also appeared in SIGPLAN NOTICES, Vol.21, No.11.

  23. Akinori Yonezawa, editor.ABCL An Object-Oriented Concurrent System. MIT Press, 1990.

  24. Akinori Yonezawa, Etsuya Shibayama, Yasuaki Honda, Toshihiro Takada, and Jean-Pierre Briot. An Object-Oriented Concurrent Computation Model ABCM/1 and its Description Language ABCL/1. In Akinori Yonezawa, editor,ABCL: An Object-Oriented Concurrent System, pp. 13–43. The MIT Press, 1990.

  25. Akinori Yonezawa and Mario Tokoro, editors.Object-Oriented Concurrent Programming. The MIT Press, 1987.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Honda, Y., Tokoro, M. Reflection and time-dependent computing: Experiences with the R2 architecture. Lisp and Symbolic Computation 9, 243–277 (1996). https://doi.org/10.1007/BF01806114

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01806114

Keywords

Navigation