A compilation system for compiling types modeled in a computer system, comprising: a compilation cache storing previously-compiled types; an incremental compilation component that receives compilation requests from a development environment, the incremental compilation component identifying types to be compiled, by identifying types which have been changed or added to the computer system in the development environment and by searching the compilation cache to identify whether any types to be compiled are stored as previously compiled types, the incremental compilation component compiling all of the identified types for which no compiled version is stored in the compilation cache and making them accessible to a runtime environment; and a computer processor being a functional part of the compilation system and activated by the incremental compilation component to facilitate identifying the types to be compiled, searching the compilation cache and compiling the identified types, and further comprising: a management component that manages memory usage and operation of the compilation system, wherein the incremental compilation component compiles the identified types to obtain the previously compiled types and stores the previously compiled types in the compilation cache, and wherein the management component intermittently determines whether a memory usage from the compilation system meets a threshold level and, if so, invalidates at least a part of the compilation cache. a compilation cache storing previously-compiled types; an incremental compilation component that receives compilation requests from a development environment, the incremental compilation component identifying types to be compiled, by identifying types which have been changed or added to the computer system in the development environment and by searching the compilation cache to identify whether any types to be compiled are stored as previously compiled types, the incremental compilation component compiling all of the identified types for which no compiled version is stored in the compilation cache and making them accessible to a runtime environment; and a computer processor being a functional part of the compilation system and activated by the incremental compilation component to facilitate identifying the types to be compiled, searching the compilation cache and compiling the identified types, and further comprising: a management component that manages memory usage and operation of the compilation system, wherein the incremental compilation component compiles the identified types to obtain the previously compiled types and stores the previously compiled types in the compilation cache, and wherein the management component intermittently determines whether a memory usage from the compilation system meets a threshold level and, if so, invalidates at least a part of the compilation cache. a management component that manages memory usage and operation of the compilation system, wherein the incremental compilation component compiles the identified types to obtain the previously compiled types and stores the previously compiled types in the compilation cache, and wherein the management component intermittently determines whether a memory usage from the compilation system meets a threshold level and, if so, invalidates at least a part of the compilation cache.