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...
Programm muss auf das Metaprogramm zugreifen können
Lesend
Schreibend
Semantik-Ändernd