A system and method for optimizing program code in dynamic languages
includes gathering hot-type information from a program by employing
inferencing or profiling to get the hot-type information for operator
uses, and inserting guards in the program based on data flow in the
program to guard against propagation failures during runtime where
preconditions are violated or where the propagation is unlikely to
return. The program is versioned into global versions including a hot
path version and a cold path version, where the hot path version is
expected to be executed if the values of variables in the code are
expected types, and other exceptional cases are handled by the cold path
version as triggered by the guards. Compiler optimizations are performed
to remove redundant representations of values, and heavy overloading of
operators to provide an optimized compiling of the code.