Reflection in Oberon
We introduce metaprogramming facilities into the Oberon V4 system. Metaprogramming means that a module can access the structure of other modules (i.e., procedures, types, run-time data) at run time. We discuss how type safety can be enforced in an environment with strong typing. Finally we show how metaprogramming can be used to implement an easy-to-use database interface and conclude with a comparison with other metaprogramming systems for statically-typed programming languages.
Paper at the JMLC'97
Hagenberg, Austria, March 1997.