14. A system comprising: a processor; and a memory, wherein the memory stores a compiler, and wherein the compiler comprises: a global optimizer configured to analyze execution flow for a range of blocks of source code in the memory to determine flow-affected code; and a native code generator configured to generate native code based on representations of the native code as functions of source code, wherein the native code generator is further configured to optimize the flow-affected code by resolving overlapping PERFORM ranges, wherein the native is configured to be executed on a virtual machine, wherein the source code includes instructions in COBOL programming language, and wherein the overlapping PERFORM ranges are detected by: identifying one or more regions of COBOL source code having an entry point; selecting a PERFORM instruction associated with the entry point to analyze; determining a PERFORM range for the selected PERFORM instruction; identifying an instruction that changes control flow in execution of the COBOL source code subsequent to the selected PERFORM instruction; determining flow-affected code resulting from the instruction; determining reachable regions from the one or more regions of the COBOL source code for the selected PERFORM instruction; and forming an adjusted PERFORM range for the selected PERFORM instruction based on the determined reachable regions.
14. A system comprising: a processor; and a memory, wherein the memory stores a compiler, and wherein the compiler comprises: a global optimizer configured to analyze execution flow for a range of blocks of source code in the memory to determine flow-affected code; and a native code generator configured to generate native code based on representations of the native code as functions of source code, wherein the native code generator is further configured to optimize the flow-affected code by resolving overlapping PERFORM ranges, wherein the native is configured to be executed on a virtual machine, wherein the source code includes instructions in COBOL programming language, and wherein the overlapping PERFORM ranges are detected by: identifying one or more regions of COBOL source code having an entry point; selecting a PERFORM instruction associated with the entry point to analyze; determining a PERFORM range for the selected PERFORM instruction; identifying an instruction that changes control flow in execution of the COBOL source code subsequent to the selected PERFORM instruction; determining flow-affected code resulting from the instruction; determining reachable regions from the one or more regions of the COBOL source code for the selected PERFORM instruction; and forming an adjusted PERFORM range for the selected PERFORM instruction based on the determined reachable regions. 15. The system of claim 14 wherein the native code is byte code.