読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

CLI規格と、それにまつわる様々な用語についてのまとめ。Javaとの実行システムなどの対比。

<スポンサーリンク>

CLI規格

.NET Frameworkのうち、さまざまなフレームワークから共通して利用できる基礎的な部分はCLI(Common Language Infrastructure:共通言語基盤)という名前で標準化されている。
CLI上で動くプログラミング言語では、ソースコードをいったん言語や環境によらない中間形式にコンパイルする。
この中間形式をCIL(Common Intermediate Language:共通中間言語)と呼ぶ。
CILにコンパイルされたコードのことは、マネージコードと呼ばれる。

CTSとは、CILに含めるべき型情報の規格のことを指す。
規格があることで、複数の言語間でライブラリを共有できることを保証する。

VES(Virtual Execution Evnironment:仮想実行環境)は、CILコードを実行するためのプログラムのこと。
CILのネイティブコード化や自動メモリ管理などの機能を提供する。この辺はJavaの影響を受けているのだろう。

メモリの自動管理では、ガーベジコレクション(GC:Garbage Collection)が用いられる。
メモリを明示的に解放するような処理は必要ない。

CILのネイティブコード化は、JIT(Just In Time)と呼ばれる方式で行われる。
Javaでもそうだが、JIT方式では、初回実行時にコンパイルを行う。

CLR(Common Language Runtime:共通言語ランタイム)はCLI規格のマイクロソフト実装のことをいう。

BCL(Base Class Library:基本クラスライブラリ)とは、アプリケーションの種類によらない、共通の基本的なライブラリに関する仕様のこと。
つまり、基本的なライブラリはCLI規格の一部として標準化されている。

C#Javaの対比

項目 Java C#
実行環境 JRE(Java Runtime Environment) .NET Frameworkなど
仮想実行システム JVM(Java Virtual Machine) CLR
共通中間言語 バイトコード CIL

読んだ本

〔速攻入門〕 C#プログラミング すぐに現場で使える知識

〔速攻入門〕 C#プログラミング すぐに現場で使える知識

まさにこんな本を求めていた、という感じ。
いまさら超初心者向けの文法書は読みたくはないけれど、きちんとC#の基本を押さえたかった。
そんな本を求めて、昨日出会ったのがこの本。
JavaC++の経験がある人を対象にして書かれている。
そのおかげで効率よく勉強できそう。