Causally Reflective Metastructure

A CausallyReflectiveMetastructure...

Is a metastructure -- it is code about code, not code about content.

Is reflective -- it describes itself, rather than something else.

Is causal -- a change to the metastructure changes the behavior of the system, as opposed to simply breaking the description.

Java has a ReflectiveMetastructure?, in that programs can query the system for information about classes, methods, members and so on. The Java metastructure is, however, generally not causally reflective. If you succeed at changing a Java class object, you generally succeed at breaking the system.

Many early ObjectOrientedDatabases were like this.

Smalltalk and some lisp systems have a CausallyReflectiveMetastructure. When I change the contents of a CompiledMethod? (carefully!), the system behavior actually changes.


EditText of this page (last edited March 7, 2011) or FindPage with title or text search