Represents a complete sequence of bytecode instructions. For example, every function or method body is a single Block. Likewise, the invariant for a give type is a Block. Finally, a Block permits attributes to be attached to every bytecode it contains. An example attribute is one for holding the location of the source code which generated the bytecode.
Every Block has a number of dedicated input variables, and an arbitrary number of additional temporary variables. Each variable is allocated to a slot number, starting from zero and with all inputs coming first.
@author David J. Pearce