The managed C# code is compiled to CIL (Common Intermediate Language). On larger systems, the compiled CIL instructions are then compiled to machine code. TinyCLR OS interprets the CIL instructions on the hardware. It is important to remember that while the interpreted code runs slower, the majority of TinyCLR OS is not interpreted. For example, when executing a line to write a string to a file, a few CIL instructions will be executed to pass that string to native file write function. The remainder of the code is all native. Typically 10% of the application is interpreted and 90% is native.