EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

C# Compilers

By Priya PedamkarPriya Pedamkar

Home » Software Development » Software Development Tutorials » C# Tutorial » C# Compilers

c# compilers final

Introduction to C# Compilers

A C# Complier can be defined as an in-built component that is used for turning the C# programmed code into a machine readable language code, which returns the output files in the form of .dll files or .exe files. C# has two different types of compiling methods, namely Common Language Runtime compiling (CLR) and Just in time compiling (JIT). The JIT compilers are further classified as Pre JIT compiler, Normal JIT compiler and Econo JIT compiler. A few of the commonly used tools for this compilation purposes are C# compiler 2.0, C# compiler 3.5, C# compiler 4.x, Roslyn and Mono Compilers.

c# compilers

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

So, after the intermediate language generated we required to convert this IL to machine codes because processor only understood machine codes.  So we used CLR (Common Language Runtime) for this conversion. CLR is a program that runs on the computer and changes the IL code to machine codes with the help of Just-In-Time (commonly called JIT). When we double-clicked on the .exe file JIT compiler is invoked and compiles the IL code at that part of the time, so that’s why it is named JUST-IN-TIME(JIT).

c# compilers

Compilation can be done implicitly or explicitly. The implicit compilation is twice compilation in which first, it is compiled IS and after that, it is compiled to machine language. This process is called JIT compilation or JUST-In-Time compilation. JIT supports multiple platforms and speeds up the execution of the code.

Types of Just-In-Time Compiler

There are three different Just-In-Time Compiler

1. Pre JIT compiler

In this compiler, there is only a single compilation process as the whole source code is compiled into the native code.

2. Normal JIT compiler

In this compiler, only those methods are compiled into machine code, which is required at run time. The compiler compiles those methods, stores them in the cache, and used the same method again.

3. Econo JIT compiler

In this compiler, only those methods are compiled into machine code which is required at a run time however these methods are removed if they are not required. In JIT, only the required method is compiled at run time, therefore, it requires less memory usage.

Popular Course in this category
C# Training Program (6 Courses, 17 Projects)6 Online Courses | 17 Hands-on Project | 89+ Hours | Verifiable Certificate of Completion | Lifetime Access
4.6 (8,847 ratings)
Course Price

View Course

Related Courses
ASP.NET Training (8 Courses, 19 Projects).NET Training Program (4 Courses, 19 Projects)

In the above diagram

1-3 steps will execute at the compile time

3-5 steps will execute at the run time.

So, when we run these two types of error occurs.

Run-Time Errors and Compiler Errors

  • Compiler Errors: This type of error occurs in the C# compiler itself. It prevents the C# code to compile into .exe format. These errors are basically occurred due to syntax error, When we misspelled any syntax or miss the comma or semicolon, then compiler did not understand this so it stops the processing and throws the compile-time error. We can see these errors in the output window of IDE. So by examining these errors we can rectify our code.
  • Runtime Errors: These are real-time errors. These occur when code is compiled successfully but encounter any issues while running. This impacts the behavior of the code. For example, we can say when we try to divide any number with zero at that time run time error occurs. These errors are more tedious than compiler errors because in this case, we need to rectify the behavior of the code.

Run time error

Type of C# Compilers

Earlier Microsoft compilers were named as .Net Framework like C# compiler 2.0, C# compiler 3.5, C# compiler 4.x, etc. These compilers were not written in C# or we can say C# was not compiled by C#. The other compilers which came into existence after this are:

1. Roslyn

Earlier the compiler was written in C/C++. Roslyn is open source .Net compiler in which the C++ code is replaced. It fetches the types of elements in code, their relation with each other. As C# and VB teams wrote the compiler, therefore, visual studio templates available for both. It allows us to write code which parses a  source file and It is easy for us to modify source code.

The following are the four API layers of Roslyn

  • Scripting API: This layer provides a runtime execution context and allows us to use C# as a scripting language and has no dependencies on visual studio components.
  • Compiler API: This layer is used for syntax and contains references for assemblies and source code files. This layer also has no dependencies on visual studio components.
  • Service API: This layer provides IntelliSense, formatting, Find All References, etc. on the top of SDK. It also helps in managing information about the project and manage project dependencies.
  • Workspace API: This layer is mainly for analysis of code and refactoring through IDEs. Roslyn makes the code easier and consists of a set of APIs like compiler and service which provides many functionalities like formatting, Intellisense, etc. It provides support to multiple languages. Workspace APIs provide deep information about source code.

2. Mono Compilers

Mono C# compiler based on ECMA standards for C#. It has multiple versions with a framework like C# 1.0, 2.0, 3.0, 4.0. The mono compiler mcs targets framework 1.1, gmcs targets framework 2.0 whereas smcs and dmcs target framework 2.1 and 4.0 respectively.

  • mcs: It supports all C# 1.1 features like anonymous methods, nullable types, fixed buffers, access modifiers on properties, static classes, etc.
  • gmcs: It supports C# 2.0 features like query expressions, object initializers, partial methods, lambda expressions, automatically implemented properties, etc.
  • dmcs: It supports C# 4.0 features which include named arguments, generic type variance, dynamics binding, etc.

The other compiler like RemObjects C# compiler which follows C# standard as per EMCA specification and other than that there are GNU C# compilers that implements C# and .Net.

Conclusion

C# compiler is just like any other compiler which compiles code into machine code so that the processor can understand the process.

Recommended Articles

This has been a guide to Data Mining Tool. Here we discuss introduction to C# compilers and different types of Just-In-Time Compiler and C# Compilers. You can also go through our other suggested articles to learn more –

  1. Best C Compilers
  2. Best Java Compilers
  3. PHP Compiler
  4. Access Modifiers in PHP

C# Training Program (6 Courses, 17 Projects)

6 Online Courses

17 Hands-on Project

89+ Hours

Verifiable Certificate of Completion

Lifetime Access

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C sharp Tutorial
  • Basic
    • Uses Of C#
    • C# Versions
    • C# Data Types
    • Variables in C#
    • Namespaces in C#
    • C# Compilers
    • C# Keywords
    • Iterators in C#
    • Objects in C#
    • C# Object Dispose
    • C# object to XML
    • C# check object type
    • C# Object Serialization
    • Pointers in C#
    • C# Literals
    • C# Commands
    • C# Custom Attribute
    • Type Casting in C#
    • String vs String C#
    • C# Struct vs Class
  • Operators
    • Logical Operators in C#
    • Conditional Operators in C#
    • Bitwise Operators in C#
    • C# OR Operator
    • C# Ternary Operators
    • Operator Precedence in C#
  • Control Statement
    • C# if Statement
    • Else If in C#
    • Continue in C#
    • Break in C#
    • Switch Statement in C#
    • Goto Statement in C#
  • Loops
    • C# For Loop
    • C# While Loop
    • C# do-while loop
    • C# foreach Loop
  • Arrays
    • Arrays in C#
    • 2D Arrays in C#
    • C# Jagged Arrays
    • String Array in C#
    • C# Multidimensional Arrays
  • Constructor and Destructor
    • Constructor in C#
    • Copy Constructor in C#
    • Static Constructor in C#
    • Destructor in C#
  • overloading and overrideing
    • Overloading and Overriding in C#
    • Overloading in C#
    • Overriding in C#
    • Method Overloading in C#
    • Method Overriding in C#
    • Operator Overloading in C#
  • Functions
    • C# Functions
    • C# String Functions
    • Math Functions in C#
    • Recursive Function in C#
    • C# Anonymous Functions
    • C# Local Functions
    • Enum in C#
    • Trim() in C#
    • clone() in C#
    • C# random
    • C# String Format()
    • C# String Interpolation
    • C# StartsWith()
    • C# String IndexOf()
    • DateTime in C#
    • C# Nullable
    • C# nameof
    • C# checked
    • C# String PadLeft
    • Convert String to Double in C#
    • Convert int to String C#
    • String to Date C#
    • C# intern()
    • C# Stopwatch
    • C# DirectoryInfo
    • C# Compare()
    • C# Base
    • C# SOAP
    • Lock in C#
  • Advanced
    • Inheritance in C#
    • Exception Handling in C#
    • Types of Exception in C#
    • C# FileNotFoundException
    • C# NullReferenceException
    • C# OutOfMemoryException
    • C# StackOverflowException
    • Custom Exception in C#
    • What is Multithreading in C#
    • C# finally
    • C# System.IO
    • What is StringBuilder in C#
    • DataReader C#
    • BinaryWriter in C#
    • C# BinaryReader
    • TextWriter in C#
    • TextReader in C#
    • C# StringReader
    • C# StringWriter
    • C# StreamReader
    • C# StreamWriter
    • C# FileInfo
    • What is Design Pattern in C#?
    • Multithreading in C#
    • Sorting in C#
    • Bubble Sort in C#
    • C# SortedList
    • C# SortedSet
    • C# SortedDictionary
    • Abstract Class in C#
    • Access Modifiers in C#
    • C# Generics
    • Deserialization in C#
    • C# Thread
    • C# Thread Join
    • C# Thread Sleep
    • C# Thread Synchronization
    • C# Class
    • Sealed in C#
    • Sealed Class in C#
    • Polymorphism in C#
    • C# Call By Reference
    • Virtual Keyword in C# 
    • Yield Keyword in C#
    • Regular Expression in C#
    • C# Lambda Expression
    • C# Predicate
    • Convert Object to JSON C#
    • Checkbox in C#
    • C# MessageBox
    • Collections in C#
    • List in C#
    • C# LinkedList
    • Listbox in C#
    • Protected in C#
    • C# EventHandler
    • Private in C#
    • this Keyword in C#
    • Static Keyword in C#
    • C# Out Parameter
    • Assert in C#
    • C# Delegates
    • C# Interface
    • Generics in C#
    • Timer in C#
    • C# Serialization
    • Metadata in C#
    • C# Stack
    • C# Using Static
    • Queue in C#
    • C# File.Exists
    • C# Tuples
    • C# Create JSON Object
    • Partial in C#
    • C# readonly
    • C# Action Delegate
    • C# Await Async
    • C# Dictionary
    • IEnumerable C#
    • C# Data Grid View
    • C# Dynamic
    • Web Services in C#
    • C# Pattern Matching
    • C# Extension Methods
    • C# XmlSerializer
  • Programs
    • Patterns in C#
    • Swapping in C#
    • Palindrome in C#
    • Factorial in C#
    • Fibonacci Series in C#
    • Random Number Generator in C#
    • Prime Numbers in C#
    • Armstrong Number in C#
    • Reverse String in C#
  • Interview questions
    • C# Interview Questions and Answers
    • C# OOP Interview Questions
    • C# Design Pattern Interview Questions

Related Courses

C# Certification Training

ASP.NET Course

.NET Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C# Training Program (6 Courses, 17 Projects) Learn More