How C# Code Gets Compiled and Executed?
Last Updated :
31 Aug, 2021
C# is a general-purpose, strongly typed, lexically scoped, functional, object-oriented, and component-oriented programming language. In this article, we are going to learn how C# code gets compiled and executed.
Step-by-step process of C# code compilation:
Step 1: Write a C# code.
Step 2: Compile the code using a C# compiler.
Step 3: Now compiler checks if the code contains an error or not. If no error is found then the compiler move to the next step. Or if the compiler found errors, then it will immediately tell the developer that an error is found in the given line, so that the developer can correct them. After correcting the error when you again run the code the compiler again check for the errors, if no error found then it will move to the next step or if an error is found then the compiler gives a message to the developer. In C# there are two types of errors:
Compiler error: Errors that occur when the developer violates the rules of writing syntax are known as Compile-Time errors. This compiler error indicates something that must be fixed before the code can be compiled. All these errors are generally detected by the compiler and thus are known as compile-time errors. For example, missing semicolon, missing parenthesis, etc.
Runtime error: Errors that occur during program execution(run-time) after successful compilation is called run-time errors. One of the most common run-time errors is division by zero also known as Division error. These types of errors are hard to find as the compiler doesn’t point to the line at which the error occurs.
Step 4: Languages such as Java or C# are not directly converted or compiled into machine-level language or machine instructions. These languages need to be converted to an intermediate code first, which is a partially half compiled code. For C#, the source code is converted to an intermediate code which is known as Common Intermediate Language (CIL) or Intermediate Language Code (ILC or IL code). This CIL or IL Code can run on any operating system because C# is a Platform Independent Language.
Step 5: After converting the C# source code to Common Intermediate Language (CIL) or Intermediate Language Code (ILC or IL code, the intermediate code needs to be converted to machine understandable code. C# uses the .NET Framework and as part of this .NET Framework, the Virtual Machine component manages the execution of programs written in any language that uses the . NET Framework. This virtual machine component is known as Common Language Runtime (CLR) which translates the CIL or IL code to native code or machine understandable code or machine instructions. This process is called the Just-In-Time (JIT) Compilation or Dynamic Compilation which is the way of compiling code during the execution of a program at run time only.
Step 6: Once the C# programs are compiled, they’re physically packaged into Assemblies. An assembly is a file that contains one or more namespaces and classes. As the number of classes and namespaces in program grows, it is physically separated by related namespaces into separate assemblies. Assemblies typically have the file extension .exe or .dll, depending on whether they implement applications or libraries respectively, where EXE stands for Executable and DLL stands for Dynamic Link Library. An EXE (Executable) file represents a program that can be executed and a DLL (Dynamic Link Library) file includes code (Eg: Library) that can be reused across different programs.
Step 7: Now, the C# compiler returns the output of the given c# code.

Compilation process of C# code
So, this is how the whole process of compilation and execution of a C# code takes place.
Similar Reads
C# .NET Framework (Basic Architecture and Component Stack)
C# (C-Sharp) is a modern, object-oriented programming language developed by Microsoft in 2000. It is a part of the .NET ecosystem and is widely used for building desktop, web, mobile, cloud, and enterprise applications. This is originally tied to the .NET Framework, C# has evolved to be the primary
6 min read
Common Language Runtime (CLR) in C#
The Common Language Runtime (CLR) is a component of the Microsoft .NET Framework that manages the execution of .NET applications. It is responsible for loading and executing the code written in various .NET programming languages, including C#, VB.NET, F#, and others. When a C# program is compiled, t
4 min read
Preprocessor Directives in C#
Preprocessor Directives in C# tell the compiler to process the given information before actual compilation of the program starts. It begins with a hashtag symbol (#) and since these preprocessors are not statements so no semi-colon is appended at the end. The C# compiler does not have a separate pre
5 min read
C# Interview Questions and Answers
C# is the most popular general-purpose programming language and was developed by Microsoft in 2000, renowned for its robustness, flexibility, and extensive application range. It is simple and has an object-oriented programming concept that can be used for creating different types of applications. He
15+ min read
CIL or MSIL - Microsoft Intermediate Language or Common Intermediate Language
MSIL (Microsoft Intermediate Language) also called CIL (Common Intermediate Language) is a set of instructions generated by a compiler from source code. MSIL is platform-independent means it can run on any environment that supports the .NET runtime. Before MSIL code can be executed, it must be conve
3 min read
Introduction to .NET Framework
The .NET Framework is a software development framework developed by Microsoft that provides a runtime environment and a set of libraries and tools for building and running applications on Windows operating systems. The .NET framework is primarily used on Windows, while .NET Core (which evolved into
6 min read
C# Interactive Interpreter
This article is designed to showcase the step by step implementation of Interactive C# Interpreter Development by virtue of .NET framework codeDOM APIâs which enables us to dynamically evaluate C# code expressions and statements for testing mini code fragments or scripts more or less like to Python
11 min read
Interesting Facts about C#
C# is a general-purpose, modern and object-oriented programming language pronounced as "C Sharp" or "C Hash". It was developed by Microsoft led by Anders Hejlsberg and his team within the .NET initiative and was approved by the European Computer Manufacturers Association (ECMA) and International Sta
3 min read
Setting up the environment in C#
C# is a powerful programming language used in various applications from desktop to mobile development. It is widely used for building full-stack web applications, AI (Artificial Intelligence), Augmented Reality (AR), and Virtual Reality (VR). In this article, we will set up an environment for C# by
4 min read
Introduction to C#
C# (C-sharp) is a modern, object-oriented programming language developed by Microsoft as part of the .NET framework. It was first released in 2000 and it has become one of the most widely used languages for building Windows applications, web services, and more. C# combines the power of C and C++ wit
7 min read