共通中間言語
共通中間言語(きょうつうちゅうかんげんご、英語: Common Intermediate Language、略称 : CIL("sil" や "kil" と発音される))は、共通言語基盤 (Common Language Infrastructure、CLI) において定義されている、人間が解読可能な最も低水準なプログラミング言語である。これは.NET FrameworkやMonoにより使用される。CLI互換な実行環境をターゲットとしている言語はCILにコンパイルされる。そのCILはバイトコードスタイルフォーマットであるオブジェクトコードにより組み立てられている。CILはオブジェクト指向なアセンブリ言語であり、完全なスタックベースである。そのバイトコードはネイティブコードに翻訳されるか、仮想機械により実行される。
.NET言語がベータリリースである間、CILはMicrosoft Intermediate Language (MSIL) と呼ばれていた。C#およびCLIの標準化により、現在ではバイトコードは公式にCILと呼ばれる。
CILアセンブリおよび命令は、コンパイラと、実行環境と共に送られるIL アセンブラー (ILASM) と呼ばれるユーティリティのどちらかで生成される。
アセンブルされたILはIL 逆アセンブラー (ILDASM) を使用して再びコードへと逆アセンブルすることもできる。高水準言語(例えばC#やVisual Basic)へと逆コンパイルする.NET Reflectorのような他のツールもある。これにより、ILはリバースエンジニアリングのとても容易なターゲットとなる。この特徴はJavaバイトコードと共通である。しかしながら、コードを難読化するツールもあり、そうすることによりコードが容易に読めなくなるが実行はできるようになる。