The computation is based on the application, T, the accumulated result, and the role played by T in its parent. An application object, like any other object, may have its own state variables. These may be used to accumulate context needed by the application's methods. Auxiliary parameters are supported by all the generic functions mentioned above. Only methods that directly supply or consume a given auxiliary parameter need to be aware of that parameter.
Auxiliary parameters are useful for context that follows a stack discipline.
The syntactic role played by a parse tree in its parent is supplied through an auxiliary parameter. They can be used as an alternative to auxiliary parameters. In general use of dynamic variables detracts somewhat from program readability and maintenance, but they perform better than auxiliary parameters in some situations. Global variables may be employed. Applications typically inherit this method for almost all non-terminal classes, overriding for a few classes for which no subtrees need to be processed or, less commonly, for which a subset of subtrees must be processed.