1. A method for compiling source code comprising operating a computer to perform steps of: receiving source code written in a computer programming language; and compiling the source code to generate executable program code, including detecting invalid programming constructs in the source code and generating valid compiler constructs that represent detected invalid programming constructs, wherein invalid programming constructs are programming constructs in the source code that violate one or more grammar rules of the computer programming language; wherein the executable program code is generated despite errors in the source code.