To enable further optimization and transformation, Bandera performs a number of common data/control analysis. In particular, the Bandera Object Flow Analysis (BOFA) statically collects information about the objects that may flow into each program expression at run-time. In a typical configuration, BOFA will associate a set of tokens for a particular expression e where a token is a pair (C,s) where C is a class name and s is the allocator site where the object was created. Thus, BOFA is similar to points to analyses used for convention imperative languages and closure analyses used for functional programming languages. BOFA is typically run in a context-insensitive flow-insensitive mode, but is designed to allow the precision to be increased along several different axes.