Metaprogrammierung

Reflective Tower

Wenn das Programm A als Daten vorliegt, wird ein Programm B benötigt, welches das Programm A ausführt: das Metaprogramm

Z. B.: A = hello.rb, B = Ruby-Interpreter

Auch das Programm B kann wieder mittels eines Metaprogramms ausgeführt werden...

Zugriff auf die Metaschichten

Programm muss auf das Metaprogramm zugreifen können

Lesend

Schreibend

Semantik-Ändernd

introspection.rb