Common Type Systemとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework用語 > Common Type Systemの意味・解説 

共通型システム (CTS) [common type system (CTS)]


共通型システム

(Common Type System から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/04 06:42 UTC 版)

ナビゲーションに移動 検索に移動

共通型システム(きょうつうかたしすてむ、英語: Common Type System、略称 : CTS)は、マイクロソフトが開発した.NET Framework対応のプログラミング言語で使われるデータ型の統一、もしくは統一された型のこと。整数型などの基本的なデータ型以外に、クラスインターフェイスについても定義されている。例えば、System.Int32は32ビット符号付き整数型、System.Int64は64ビット符号付き整数型などと定められている。これはプラットフォームオペレーティングシステム (OS) によらず一意に決まっている。

.NET Frameworkに属する全ての言語は、2種類の言語仕様に則っていなければならない。1つがCTSであり、もう一つが共通言語仕様 (CLS) である。CTSとCLSによって、.NET Framework対応のプログラミング言語間で型の互換性が維持できる。CLSの一例を挙げると、クラスを定義できること、さらにクラス間の継承ができること、つまり、オブジェクト指向言語でなければならないことを定めている。

具体例

従来のプログラミング言語では、プラットフォームや言語によって、扱える型の種類や長さが異なっていた。例えば、Visual Basic 6.0の組み込み整数型であるInteger型やLong型のサイズはそれぞれ16ビットと32ビットであり、64ビット整数型はサポートされていなかった。VB.NETでは、ShortをSystem.Int16への組み込みエイリアス型、IntegerをSystem.Int32への組み込みエイリアス型、そしてLongをSystem.Int64への組み込みエイリアス型として実装している。同様にC#では、shortをSystem.Int16への組み込みエイリアス型、intをSystem.Int32への組み込みエイリアス型、そしてlongをSystem.Int64への組み込みエイリアス型として実装している。これにより、各言語は相互参照が可能になり、例えばC#で書いたライブラリをVB.NETで参照する、あるいはその逆も可能になっている。

なぜ共通型システムが必要か

各プログラミング言語はそれぞれ独自のデータ型を組み込む傾向がある。たとえば文字列を表す型として、Visual Basicは組み込みのString型を用意しているが、内部的にCOMBSTR構造体を使っている。C/C++ではchar型の配列もしくはwchar_t型の配列を文字列とみなす[1]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の共通型システムである。

型の種類

共通型システムは大別して2つの型をサポートする。

値型
値型はデータを直接的に保持する。値型のインスタンススタックに確保されるか、あるいは構造体の中に直接確保される。値型には整数浮動小数点数といった組み込みのもの(ランタイム内で実装されているもの)、ユーザー定義のもの、そして列挙型がある。いずれもCTSでは構造体の一種として扱われる。
参照型
参照型はデータのメモリアドレスへの参照を保持する。参照型のデータはヒープに確保される。参照型には自己記述型 (self-describing types)、ポインタ型、インターフェイス型があり、自己記述型はさらに配列型、クラス型に分けられる。さらにクラス型にはユーザー定義クラス、ボックス化された値型、デリゲートがある。文字列型System.Stringはimmutableな参照型として実装されている。

脚注

[脚注の使い方]
  1. ^ C11およびC++11ではさらにchar16_tとchar32_tが定義されるが、本記事では簡単のため言及しない。

関連項目


「Common Type System」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Common Type System」の関連用語

Common Type Systemのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Common Type Systemのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの共通型システム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS