なぜ共通型システムが必要か
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/04 06:42 UTC 版)
「共通型システム」の記事における「なぜ共通型システムが必要か」の解説
各プログラミング言語はそれぞれ独自のデータ型を組み込む傾向がある。たとえば文字列を表す型として、Visual Basicは組み込みのString型を用意しているが、内部的にCOMのBSTR構造体を使っている。C/C++ではchar型の配列もしくはwchar_t型の配列を文字列とみなす。STLではstd::stringおよびstd::wstringクラスを、ATL/MFCではATL::CString (ATL::CStringA/ATL::CStringW) クラスを提供する。また、C/C++ (Visual C++) のint型はWin16環境では16ビット、Win32/Win64環境では32ビットだが、Visual BasicのInteger型は16ビットである。これらのデータ型は、言語間での互換性がない。 .NET Frameworkの目標の1つはアプリケーション開発を容易にすることである。.NET Frameworkの前身であるCOMは、プログラミング言語の壁を超えてソフトウェアコンポーネントをバイナリレベルで共有・再利用することを可能にする技術だが、開発者にとって多くの頭痛の種をもたらした。GUIDやHRESULTの定義、早期バインディング (early binding) と遅延バインディング (late binding)、参照カウントの管理、実行環境のスレッディングモデル、そして上述の型の互換性などである。幸い、その状況から開発者を救うためにVisual BasicやATLといった開発環境やフレームワークが登場し、この複雑さを解消した。例えばVisual Basicでは、適切なGUIDを自動的に生成したり、アプリケーション内で使用されるCOMオブジェクトの参照カウントを自動的に管理したりすることができた。しかし、Visual BasicのCOMの実装には依然として不満な点が多かった[要説明]。 これを解決するために、さまざまな言語が共通して持つ型のシステムが考え出された。これが.NET Frameworkの共通型システムである。
※この「なぜ共通型システムが必要か」の解説は、「共通型システム」の解説の一部です。
「なぜ共通型システムが必要か」を含む「共通型システム」の記事については、「共通型システム」の概要を参照ください。
- なぜ共通型システムが必要かのページへのリンク