LISP and Symbolic Computation, 9(2/3)243-277
Reflection and Time-Dependent Computing:Experiences with the R2 Architecture
Yasuaki Honda, Sony Computer Science Laboratory Inc., 3-14-13, Higashi-Gotanda, Shinagawa-ku, Tokyo 141, Japan
Mario Tokoro, Sony Computer Science Laboratory Inc., 3-14-13, Higashi-Gotanda, Shinagawa-ku, Tokyo 141, Japan
Abstract: In this paper we present an application of
computational reflection in the programming of time-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
(R2 architecture) for time-dependent computing. This architecture is
based on an individual 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.
Keywords: real-time computing, computational reflection,
meta-level programming, object-based concurrency
|
This article is not available online.
|
|