A XLANG/s compilation method is provided that uses data flow analysis of a
program's flow graph to determine lifetimes of a data object. A flowgraph
is created according to abstract computer instructions. A depth-first
order is assigned to basic blocks and a dominance relationship between
the basic blocks is determined. A determination is made as to whether any
loops are present within the flowgraph and, if so, the loops are
identified. A creation point, destruction point and lock point for the
data object is determined. Instructions are inserted into the computer
code to create the at least one data object at the creation point, to
destroy the data object at the destruction point and to lock the data
object at the lock point.