definition metadata (where something can go wrong) and then execute what it has
interpreted (where something else can go wrong). Even if everything works correctly,
the results may not be correct from a business viewpoint, so there is a third
level at which things can go wrong. It is covering all these possibilities that
makes adding debugging functionality to a rule interpreter so difficult. This contrasts
sharply with the next approach to rules execution that will be considered—code
generation.
Code Generation: Interpretive versus Compiled Programming Languages
Rather than have one routine that interprets rule metadata for each rule type, it is
possible to have a routine that generates executable code based on the rule type meta-
data. This code ...