A compiler architecture uses a question and answer methodology between a
reduction engine and nodes of a graph representing the program being
compiled to provide for easy expandability of the compiler. By using the
question and answer methodology, additional functionality can be added to
the compiler by users, whether they be part of the original design team of
the compiler or be a subsequent user.