28. A system, comprising: one or more compilers and one or more processors, wherein the compilers, executed by the one or more processors, support mixing and nesting of languages within a source file and provide streams of token nodes; an extensible multi-language compiler framework, wherein the compiler framework provides a language-independent source code editor with information about the source file, comprising signatures of classes defined by the source file, errors found in the source file, stack of nested languages at any point in the source file, and information exposed by any languages; wherein the language-independent source code editor does not include a language-specific lexical analyzer or parser; wherein the language-independent source code editor communicates to the compiler framework using language-independent metadata identifying a changed file, changed text, and type of change; wherein the extensible multi-language compiler framework has error correction in code-generation, permitting a user to run code even if there is an error in the code; wherein the compiler framework retokenizes the source code file and updates token and node information; wherein the compiler framework enqueues a task from the compiler framework to complete compilation in a background thread; wherein the language-independent source code editor repaints a screen (living immediate feedback to a user; wherein the compiler framework empties enqueued tasks and completes remaining steps in the background thread; wherein a thread pool allows compilation of multiple files to be performed in parallel; and wherein a type cache contains signatures for classes.
28. A system, comprising: one or more compilers and one or more processors, wherein the compilers, executed by the one or more processors, support mixing and nesting of languages within a source file and provide streams of token nodes; an extensible multi-language compiler framework, wherein the compiler framework provides a language-independent source code editor with information about the source file, comprising signatures of classes defined by the source file, errors found in the source file, stack of nested languages at any point in the source file, and information exposed by any languages; wherein the language-independent source code editor does not include a language-specific lexical analyzer or parser; wherein the language-independent source code editor communicates to the compiler framework using language-independent metadata identifying a changed file, changed text, and type of change; wherein the extensible multi-language compiler framework has error correction in code-generation, permitting a user to run code even if there is an error in the code; wherein the compiler framework retokenizes the source code file and updates token and node information; wherein the compiler framework enqueues a task from the compiler framework to complete compilation in a background thread; wherein the language-independent source code editor repaints a screen (living immediate feedback to a user; wherein the compiler framework empties enqueued tasks and completes remaining steps in the background thread; wherein a thread pool allows compilation of multiple files to be performed in parallel; and wherein a type cache contains signatures for classes. 32. The system of claim 28 , wherein the compiler framework keeps track of errors in source files in a project so that the user can have a list of errors in opened and unopened source code files in a project.