|
ABSTRACT
This paper brings some perspective to various concepts in computational reflection. A definition of computational reflection is presented, the importance of computational reflection is discussed and the architecture of languages that support reflection is studied. Further, this paper presents a survey of some experiments in reflection which have been performed. Examples of existing procedural, logic-based and rule-based languages with an architecture for reflection are briefly presented. The main part of the paper describes an original experiment to introduce a reflective architecture in an object-oriented language. It stresses the contributions of this language to the field of object-oriented programming and illustrates the new programming style made possible. The examples show that a lot of programming problems that were previously handled on an ad hoc basis, can in a reflective architecture be solved more elegantly.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Bobrow D. and Stefik M. (198 !) "'The LOOPS manual". Tech. Rep. KB-VLSI-81-13. Knowledge Systems Area. Xerox Palo Alto Re,arch Center. Palo Alto, California.
|
| |
2
|
|
| |
3
|
Bowen K, (t986) "Meta-level Techniques in Logic Programming". In: Proceedings of the International Conference on Artilicial Intelligence and its Applications. Singapore.
|
| |
4
|
Briot J.P. and Cointe P. (1986) "The OBJVLISP Model: Definition of a Uniform Reflexive and Extensible Object-Oriented Language'. In: Proceeding.~ of the European Conference on Artificial Intelligence- 1986.
|
 |
5
|
|
| |
6
|
|
| |
7
|
Friedman D. and Wand M. (1984) "Reification: Reflection without meta-physics". Communications of the ACM. Vol 8.
|
| |
8
|
Genesereth M. (1987) "Prescriptive Introspection". In: Meta-Level Architectures and Reflection. Eds: P. Maes and D. Nardi. North.Holland, Amsterdam, June 1987.
|
| |
9
|
Goldberg A. and Kay A. (1976) "SMALLTALK-72 Instruction Manual". Technical Report SSL-76-6, Xerox Palo Alto Research Center. Palo Alto, California.
|
| |
10
|
|
| |
11
|
Greiner R. (1980) "RLL- I: A Representation Language Language". Stanford Heuristic Programming Project. HPP-80-9. Stanford, California.
|
| |
12
|
Hayes P. (1974) "The Language GOLUX". University of Essex Report. Es~x, United Kingdom.
|
| |
13
|
Laird J., Rosenbloom P. and Newell A. (1986) "Chunking in SOAR: The Anatomy of a G~:neral Learning Mechanism". In: Machine lntelligencx~. Vol I. Nr I. Kluwer Academic Publishers.
|
| |
14
|
Lieberman H. (1981) "A Preview of ACTI". Massachusetts Institute of Technology, Artificial Intelligence Laboratory. MIT AI-MEMO 625. Cambridge, Massachusetts.
|
| |
15
|
Maes P. (1987) "Computational Reflection". PhD. Thesis. Laboratory for Artificial Intelligence, Vrije Universiteit Brussel. Brussels, Belgium. January 1987.
|
| |
16
|
|
| |
17
|
|
| |
18
|
Smith B, (1982) "Reflection and Semantics in a Procedural Language". Massachusetts institute of Techno!ogy. Laboratory for Computer Science. Technical Report 272. Cambridge,= Massachu~tts.
|
| |
19
|
Smith B. and Hewitt C. (1975) "A PLASMA Primer (draft)". Massachusetts Institute of Technology. Artificial Intelligence Laboratory. Cambridge, Massachu~tts.
|
| |
20
|
Steels L. (1986) "The KRS Concept System". Vrije Universiteit Brussel. Artificial Intelligence 1.aboratory. Technical Report 86-1. Brus~ls, Belgium.
|
| |
21
|
|
| |
22
|
Van Marcke K. (1986) "A Parallel Algorithm for Consistency Maintenance in Knowledge Representation'. In: Proceedings of the European Conference on Artificial Intelligence, 1986. Brighton, England.
|
| |
23
|
|
| |
24
|
Weyhrauch R. (1980) "Prolegomena to a Theory of Mechanized Formal Reasoning'. In: Artificial Intelligen~~ Vol. 13 No. 1,2. North Holland. Amsterdam. The Netherlands.
|
CITED BY 132
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
William J. Tolone , Simon M. Kaplan , Geraldine Fitzpatrick, Specifying dynamic support for collaborative work within WORLDS, Proceedings of conference on Organizational computing systems, p.55-65, August 13-16, 1995, Milpitas, California, United States
|
|
|
|
|
|
|
|
|
T. Gallo , G. Serrano , F. Tisato, ObNet: an object-oriented approach for supporting large, long-lived, highly configurable systems, Proceedings of the 11th international conference on Software engineering, p.138-144, May 1989, Pittsburgh, Pennsylvania, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Annie Marcoux , Christine Maurel , Frédéric Migeon , Patrick Sallé, Generic operational decomposition for concurrent systems: semantics and reflection, Progress in computer research, Nova Science Publishers, Inc., Commack, NY, 2001
|
|
|
YanBo Han , ZhuoFeng Zhao , Gang Li , DongShan Xing , QingZhong LV , JianWu Wang , JinHua Xiong , Hao Liu, CAFISE: an approach to enabling adaptive configuration of service grid applications, Journal of Computer Science and Technology, v.18 n.4, p.484-494, July 2003
|
|
|
|
|
|
|
|
|
Z. Yang , B. H. C. Cheng , R. E. K. Stirewalt , J. Sowell , S. M. Sadjadi , P. K. McKinley, An aspect-oriented approach to dynamic adaptation, Proceedings of the first workshop on Self-healing systems, November 18-19, 2002, Charleston, South Carolina
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ian S. Welch , Robert J. Stroud, Kava - a powerful and portable reflective Java (poster session), Addendum to the 2000 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum), p.123-124, January 2000, Minneapolis, Minnesota, United States
|
|
|
Sergei Kojarski , David H. Lorenz, AOP as a first class reflective mechanism, Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 24-28, 2004, Vancouver, BC, CANADA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fabrício Fernandes , Thais Batista , Nélio Cacho, Exploring reflection to dynamically aspectizing CORBA-based applications, Proceedings of the 3rd workshop on Adaptive and reflective middleware, p.220-225, October 19-19, 2004, Toronto, Ontario, Canada
|
|
|
Annie Marcoux , Christine Maurel , Frédéric Migeon , Patrick Sallé, Generic operational decomposition for concurrent systems: semantics and reflection, Progress in computer research, Nova Science Publishers, Inc., Commack, NY, 2001
|
|
|
|
|
|
|
|
|
Renaud Pawlak , Lionel Seinturier , Laurence Duchien , Gérard Florin , Fabrice Legond-Aubry , Laurent Martelli, JAC: an aspect-based distributed dynamic framework, Software—Practice & Experience, v.34 n.12, p.1119-1148, October 2004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Naoyasu Ubayashi , Genki Moriyama , Hidehiko Masuhara , Tetsuo Tamai, A parameterized interpreter for modeling different AOP mechanisms, Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, November 07-11, 2005, Long Beach, CA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F. A. Samimi , P. K. McKinley , S. M. Sadjadi , P. Ge, Kernel-middleware interaction to support adaptation in pervasive computing environments, Proceedings of the 2nd workshop on Middleware for pervasive and ad-hoc computing, p.140-145, October 18-22, 2004, Toronto, Ontario, Canada
|
|
|
|
|
|
|
|
|
Geoff Coulson , Gordon Blair , David Hutchison , Ackbar Joolia , Kevin Lee , Jo Ueyama , Antonio Gomes , Yimin Ye, NETKIT: a software component-based approach to programmable networking, ACM SIGCOMM Computer Communication Review, v.33 n.5, October 2003
|
|
|
N. Bencomo , G. Blair , G. Coulson , P. Grace , A. Rashid, Reflection and aspects meet again: runtime reflective mechanisms for dynamic aspects, Proceedings of the 1st workshop on Aspect oriented middleware development, November 28-December 02, 2005, Grenoble, France
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Claudia Raibulet , Francesca Arcelli , Stefano Mussino , Mario Riva , Francesco Tisato , Luigi Ubezio, Components in an adaptive and QoS-based architecture, Proceedings of the 2006 international workshop on Self-adaptation and self-managing systems, May 21-22, 2006, Shanghai, China
|
|
|
|
|
|
|
|
|
Nelio Cacho , Thais Batista , Alessandro Garcia , Claudio Sant'Anna , Gordon Blair, Improving modularity of reflective middleware with aspect-oriented programming, Proceedings of the 6th international workshop on Software engineering and middleware, November 10-10, 2006, Portland, Oregon
|
|
|
|
|
|
Stijn Mostinckx , Tom Van Cutsem , Stijn Timbermont , Éric Tanter, Mirages: behavioral intercession in a mirror-based architecture, Proceedings of the 2007 symposium on Dynamic languages, October 22-22, 2007, Montreal, Quebec, Canada
|
|
|
|
|
|
|
|
|
Paul Grace , Eddy Truyen , Bert Lagaisse , Wouter Joosen, The case for aspect-oriented reflective middleware, Proceedings of the 6th international workshop on Adaptive and reflective middleware: held at the ACM/IFIP/USENIX International Middleware Conference, p.1-6, November 26-30, 2007, Newport Beach, CA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bholanathsingh Surajbali , Geoff Coulson , Phil Greenwood , Paul Grace, Augmenting reflective middleware with an aspect orientation support layer, Proceedings of the 6th international workshop on Adaptive and reflective middleware: held at the ACM/IFIP/USENIX International Middleware Conference, p.1-6, November 26-30, 2007, Newport Beach, CA
|
|
|
|
|
|
Geoff Coulson , Gordon Blair , Paul Grace , Francois Taiani , Ackbar Joolia , Kevin Lee , Jo Ueyama , Thirunavukkarasu Sivaharan, A generic component model for building systems software, ACM Transactions on Computer Systems (TOCS), v.26 n.1, p.1-42, February 2008
|
|
|
|
|
|
Davide Ancona , Massimo Ancona , Antonio Cuni , Nicholas D. Matsakis, RPython: a step towards reconciling dynamically and statically typed OO languages, Proceedings of the 2007 symposium on Dynamic languages, October 22-22, 2007, Montreal, Quebec, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|