34,333
edits
Changes
→Virtual Execution System (VES)
== Virtual Execution System (VES) ==
The VES (usually referred to as the ''runtime'') is the environment in which the CIL byte code is executed. The VES reads the byte code generated by the C# compiler and using uses something called a ''Just in Time (JIT)'' compiler to compile the byte code down to the native machine code of the processor on which it is running. While this code is executing it does so in conjunction with a runtime agent which essentially manages the execution process. As a result, this executing code is known as ''managed code'' and the process handles issues such as garbage collection (to handle memory allocation and deallocation), memory access and type safety to ensure that the code does not do anything it is not supposed to do.
A term that is often using used in connection with the VES is the ''Common Language Runtime'' (CLR). The CLR is officially the name given to Microsoft's implementation of the VES component of the CLI specification.
It is worth noting that the JIT process can introduce a startup delay on execution of an application. One option available with .Net to avoid this problem is to precompile pre-compile CLI byte code down to native machine code using the ''NGEN'' compiler. Because the NGEN compilation must take place on the target processor architecture this is step is often performed at the point that the application in question is installed by the user.
== Common Type System (CTS) & Common Language Specification (CLS) ==