Results 1 -
6 of
6
Axiomatizing Reflective Logics and Languages
- Proceedings of Reflection'96
, 1996
"... The very success and breadth of reflective techniques underscores the need for a general theory of reflection. At present what we have is a wide-ranging variety of reflective systems, each explained in its own idiosyncratic terms. Metalogical foundations can allow us to capture the essential aspects ..."
Abstract
-
Cited by 33 (19 self)
- Add to MetaCart
The very success and breadth of reflective techniques underscores the need for a general theory of reflection. At present what we have is a wide-ranging variety of reflective systems, each explained in its own idiosyncratic terms. Metalogical foundations can allow us to capture the essential aspects of reflective systems in a formalismindependent way. This paper proposes metalogical axioms for reflective logics and declarative languages based on the theory of general logics [34]. In this way, several strands of work in reflection, including functional, equational, Horn logic, and rewriting logic reflective languages, as well as a variety of reflective theorem proving systems are placed within a common theoretical framework. General axioms for computational strategies, and for the internalization of those strategies in a reflective logic are also given. 1 Introduction Reflection is a fundamental idea. In logic it has been vigorously pursued by many researchers since the fundamental wor...
Reflection in logic, functional and object-oriented programming: a Short Comparative Study
- In IJCAI '95 Workshop on Reflection and Metalevel Architectures and their Applications in AI
, 1995
"... Reflection is a wide-ranging concept that has been studied independently in many different areas of science in general, and computer science in particular. Even in the sub-area of programming languages, it has been applied to different paradigms, especially the logic, functional and objectoriented o ..."
Abstract
-
Cited by 31 (1 self)
- Add to MetaCart
Reflection is a wide-ranging concept that has been studied independently in many different areas of science in general, and computer science in particular. Even in the sub-area of programming languages, it has been applied to different paradigms, especially the logic, functional and objectoriented ones. Partly because of different past influences, but also because researchers in these communities scarcely talk to each others, concepts have evolved separately, sometimes to the point where it is hard for people in one community to recognize similarities in the work of others, not to speak about cross-fertilization among them. In this paper, we propose a synthesis covering mainly the application of computation reflection to programming languages. We compare the different approaches and try to identify similar concepts hidden behind different names or constructs. We also point out the different emphasis that has been given to different concepts in each of them. We do not claim neither comp...
The Theory of Fexprs is Trivial
, 1998
"... . We provide a very simple model of a reflective facility based on the pure -calculus, and we show that its theory of contextual equivalence is trivial: two terms in the language are contextually equivalent iff they are ff-congruent. 1. Introduction The thesis of much of programming language seman ..."
Abstract
-
Cited by 18 (0 self)
- Add to MetaCart
. We provide a very simple model of a reflective facility based on the pure -calculus, and we show that its theory of contextual equivalence is trivial: two terms in the language are contextually equivalent iff they are ff-congruent. 1. Introduction The thesis of much of programming language semantics is that the fundamental question about a programming language is its notion of contextual equivalence: which pairs of phrases (M; N) have the property that M and N may be freely substituted for each other in any program context, without changing the behavior of the resulting program [10, 14]. This is a key notion because, for example, any source-to-source optimization in a compiler (except possibly for a whole-program transformation) should produce a term contextually equivalent to the original. In this note, we provide a very simple model of a reflective facility based on the pure -calculus, and we show that its theory of contextual equivalence is trivial: two terms in the language ar...
A Generic Reification Technique for Object-Oriented Reflective Languages
- Higher-Order and Symbolic Computation
, 2001
"... Computational reflection is gaining interest in practical applications as witnessed by the use of reflection in the JAVA programming environment and recent work on reflective middleware. Reflective systems offer many different reflection programming interfaces, the so-called MetaObject Protocols ..."
Abstract
-
Cited by 11 (2 self)
- Add to MetaCart
Computational reflection is gaining interest in practical applications as witnessed by the use of reflection in the JAVA programming environment and recent work on reflective middleware. Reflective systems offer many different reflection programming interfaces, the so-called MetaObject Protocols (MOPs). Their design is subject to a number of constraints relating to, among others, expressive power, efficiency and security properties. Since these constraints are different from one application to another, we should be able to easily provide specially-tailored MOPs. In this paper, we present a generic reification technique based on program transformation. It enables the selective reification of arbitrary parts of object-oriented metacircular interpreters. The program transformation can be applied to different interpreter definitions. Each resulting reflective implementation provides a different MOP directly derived from the original interpreter definition. Keywords: reflection, ...
Reflection and open implementations
, 2009
"... We review the state-of-the-art of reflection and metaprogramming, prior to our work on partial behavioral reflection and Reflex, and open implementations. The first four sections are dedicated to reflection. Section 1 introduces the concept of reflection and its application to programming languages. ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
We review the state-of-the-art of reflection and metaprogramming, prior to our work on partial behavioral reflection and Reflex, and open implementations. The first four sections are dedicated to reflection. Section 1 introduces the concept of reflection and its application to programming languages. Section 2 discusses reflection in the particular context of object-oriented programming languages. Then, since we are interested in addressing issues in the concrete applicability of reflection, we dedicate Section 3 to the structuring and engineering of metalevel architectures, while implementation considerations are dealt with in Section 4. After this comprehensive review of reflection, the last section discusses the related area of open implementations (Section 5).
Aspect-Oriented Programming versus Reflection
- In Position Statement for the OOPLSA ’96 AOP meeting
, 1996
"... Reflection has a long history of dealing about some aspects of software components. In this short position paper, we compare and contrast reflection and aspect-oriented programming. Whilst reflection has recently focused on very specific aspects of software components, namely implementational usu ..."
Abstract
- Add to MetaCart
Reflection has a long history of dealing about some aspects of software components. In this short position paper, we compare and contrast reflection and aspect-oriented programming. Whilst reflection has recently focused on very specific aspects of software components, namely implementational usually segregated among structural (representation) and behavioral (execution) aspects, aspect-oriented programming wishes to broaden the spectrum of attributes of software taken into account. On the other hand, weaving the aspects into a coherent and faithful implementation of their prescriptions is by nature a reflective process which can be put into the hand of aspect-oriented programmers using reflection. Finally, a link can be made between aspect-oriented programming and the underinvestigated area of declarative reflection. 1 Context During the last fifteen years, we have been involved in research on reflection in programming languages. Our contributions encompass: 1. object-orien...

