1. A system operable to perform a multi-programming-language compilation process on a computer program, comprising: a compiler framework operable to perform a programming language-independent portion of the compilation process; a plurality of language modules, wherein each language module is operable to perform a programming language-dependent portion of the compilation process; and a plurality of language interfaces, wherein each language interface is provided by a language module to interact with the compiler framework.