1. A method comprising: converting lines of source code representing functions to byte-codes representing functions; selecting a subsequence of the byte-codes based on the byte-codes and the dynamic run-time properties of program variables; generating processor instructions in a compiler for the subsequence; and interpreting the byte-codes not contained in the subsequence.