***Common Language Runtime*** (disingkat menjadi **CLR**) adalah komponen mesin virtual yang terdapat di dalam Microsoft .NET yang merupakan implementasi yang dilakukan oleh Microsoft terhadap standar Common Language Infrastructure (CLI), yang mendefinisikan inferastruktur umum (common) untuk lingkungan pengeksekusian kode-kode dalam berbagai bahasa pemrograman. CLR menjalankan sebuah bentuk *bytecode* yang disebut dengan Microsoft Intermediate Language (MSIL), yang merupakan implementasi Microsoft terhadap Common Intermediate Language (CIL).

Para pemrogram yang hendak menggunakan CLR harus menulis kode sumber programnya dalam sebuah bahasa pemrograman tingkat tinggi, seperti halnya C#, J#, atau Visual Basic .NET dan beberapa bahasa pemrograman lainnya yang sesuai dengan .NET Framework. Pada saat kompilasi, kompilator bahasa .NET (seperti `csc.exe`, `vbc.exe`, atau `vjc.exe`) akan mengubah kode-kode tersebut menjadi kode MSIL. Pada saat dijalankan (*runtime*), *Just-in-time compiler* (JIT compiler) yang dimiliki oleh CLR akan mengubah kembali kode MSIL menjadi kode *native* yang digunakan oleh sistem operasi. Atau, kode MSIL juga dapat dikompilasi menjadi kode *native* dalam sebuah langkah terpisah sebelum terjadi proses *runtime*. Hal ini dapat mempercepat penjalankan perangkat lunak hasil kompilasi, mengingat tidak ada lagi konversi dari kode MSIL menjadi kode *native* yang sebelumnya telah dilakukan.

Meskipun beberapa implementasi Common Language Infrastructure (CLI), seperti Mono, Portable.NET dan Rotor dapat berjalan di atas sistem operasi selain Windows, CLR hanya dapat berjalan di atas sistem operasi Windows.

Mesin virtual yang dimiliki oleh CLR mengizinkan para *programmer* untuk mengabaikan banyak detail yang digunakan oleh CPU tertentu yang didesain untuk mengeksekusi program buatannya. Selain itu, CLR juga menyediakan beberapa layanan yang juga penting, di antaranya adalah:

* Memory management (manajemen memori)
* Thread management (manajemen thread)
* Exception handling (penanganan eksepsi)
* Garbage collection (pengumpulan sampah)
* Security (keamanan)

| * l
* b
* s
.NET Framework |
| --- |
| Arsitektur | 
* Sejarah
* Base Class Library
* Common Language Runtime
* Code Access Security
* Assembly
* Manifest
* Metadata
* COM Interop

 |
| Common LanguageInfrastructure (CLI) | 
* Common Language Infrastructure
* Common Type System
* Common Intermediate Language
* Virtual Execution System

 |
| Bahasa CLI | 

|  |  |
| --- | --- |
| Common1 | 
* C#
* Visual Basic .NET
* C++/CLI
	+ Managed
* F#
* J#
* JScript .NET
* Windows PowerShell

 |
| Lainnya2 | 
* Axum
* A#
* Boo
* Cobra
* M
* Oxygene
* IronScheme (IronLisp)
* IronPython
* IronRuby
* Nemerle
* Phalanger
* P#
* Scala

 |

 |
| Komponen | 
* ADO.NET
	+ Entity Framework
	+ Data Services
* ASP.NET
	+ AJAX
	+ MVC
	+ Dynamic Data
* CardSpace
* ClickOnce
* CLR Profiler
* Communication Foundation
* Dynamic Language Runtime
* Forms
* LINQ
* Managed Extensibility Framework
* Parallel Extensions
* Presentation Foundation
* Remoting
* "Roslyn"
* Workflow Foundation
* XAML

 |
| Implementasi lain | 
* Mono
* Compact Framework
* XNA Framework
* Micro Framework
* Portable.NET
* Silverlight
* SSCLI

 |
| Perbandingan | 
* Java dan C#
* C# dan Visual Basic .NET
* Platform Java dan .NET
* Visual Basic dan Visual Basic .NET

 |
| 
* 1 Bahasa yang telah didukung, sedang didukung, atau akan didukung di Visual Studio atau .NET Framework.
* 2 Bahasa non-akademik atau penelitian dengan basis pengguna yang relatif besar.

 |

|  |  |
| --- | --- |
| Ikon rintisan | Artikel bertopik bahasa komputer ini adalah sebuah rintisan. Anda dapat membantu Wikipedia dengan mengembangkannya. |

* l
* b
* s