Methods of Reflection
Introduction
Reflection is the ages old concept of someone thinking about oneself. Yes, there are other meanings to the word; this is the one we consider here. In Computer Science, Reflection is a powerful conceptual tool with such various applications as simplifying logical proofs enough to make them physically tractable, enabling dynamic (run-time) evolution of programming systems, transforming programs statically (at compile-time) to add and manage such features as concurrency, distribution, persistence, or object systems, or allowing expert systems to reason about and adapt their own behavior.Glossary References
- Meta-
- Meta-Circular
- Meta-Level
- Meta-Object
- Meta-Object Protocol
- Metaprogramming
- Open Implementation
- Partial Evaluation
- Reflection
- Reflective Tower
- Reification
Foundations
See Kurt Gödel, Alan Turing?, Douglas Hofstadter? (see below).John Tromp's universal machine. The Principia Cybernetica project.
Metalogical Reflection
Self-References
Run-time Computational Reflection
Brian C. Smith, Patti Maes, A. Yonezawa.
Compile-Time (Computational) Reflection
Shigeru Shiba, Tim Sheard?, Rowan Davies?.
Partial Evaluation
Olivier Danvy? & Andrzej Filinski? at BRICS?; Neil D. Jones at DIKU; Charles Consel? and Gilles Muller? at IRISA (COMPOSE group); at OGI.
Erik Ruf's PhD thesis on PE. PE courses have been taught using his dissertation.
- Semantics-based Program Analysis and Maipulation
- PEPM'97: Partial Evaluation and Semantic-based Program Manipulation
- cmix
- FUSE
Run-Time Code Generation
Reflective Expert Systems
Jacques Pitrat and his team. Self Reflection in Cognitive Architectures.Reflective Concurrent Programming
José Meseguer; Carol Talcott; A. Yonezawa;Meta-Object Protocols
A classic book, AMOP.
A recent small project in Squeak by Henrik Gedenryd to develop a "Universal Composition" system for programs. It essentially involves a graph of meta-objects describing source-composition operations which can be eagerly or lazily (statically or dynamically) driven, resulting in partial evaluation or forms of dynamic composition such as AOP. He provides a demonstration Squeak image and a rough draft paper.
Aspect-Oriented Programming
Reasoning Systems
Reflective Programming Languages
This page is linked from: index Reflection Reflection 101 Review