ベストアンサー
型チェックは、構造の型を検証する型チェッカーによって行われます(定数、変数、配列、リスト、オブジェクト)は、その使用状況で予想されるものと一致します。これにより、特定のタイプのプログラミングエラーが検出されて報告されます。たとえば、モジュロ演算子8%3.5を含む次の式について考えてみます。モジュロ演算子は、2つの整数を予期しているため、この式はエラーになります。型チェッカーは知っておく必要があります–言語の構文構造(例:演算子)–言語の基本型(int、real)–構造に型を割り当てるための規則例:「+の両方のオペランドがintの場合、結果はintです」
タイプチェックには2つのタイプがあります静的と動的
静的型チェック:コンパイル時に行われる型チェック。これらの言語を使用する場合、変数を使用する前に変数の型を宣言する必要があります(コンパイラ変数がどのデータ型に属しているかを知る必要があります)。たとえば、c ++ int a = 10のステートメントについて考えてみます。ここで、コンパイラは変数「a」を使用する前にそのデータ型を知る必要があります。たとえば、C、C ++、JAVA、C#は、いくつかの静的に型指定された言語
動的です。型チェック:実行時に行われる型チェック。これらの言語を使用する場合、変数の型を指定または宣言する必要はありません。代わりに、コンパイラ自体が、最初に値を割り当てたときに変数の型を判断します。ここで、Pythonのいくつかのステートメントについて考えてみます。str= “Python” str2 = 10ここでは、データ型を宣言する必要はありません。コンパイラ自体は、最初に値を割り当てたときに、変数がどのタイプに属しているかを認識します(str1は「String」データ型で、str2は「int」型です)。たとえば、VBScript、Pythonは動的に型指定された言語です。
回答
型チェックでは、操作が変数は互換性のある型を使用します。言語が異なれば、変数の互換性のレベルも異なります。厳密に型チェックされた言語には、式の変数型に関する厳格な規則があります。コインの反対側には、さまざまな種類の混合を可能にする言語があります。これらの言語は、変数変換のいくつかのルールを使用して、混合型をある程度補正します。
たとえば、一部の厳密な型言語では、2つの整数または2つの浮動小数点数しか追加できませんが、試行するとエラーにフラグを立てます。浮動小数点数に整数を追加します。他の言語では、整数をfloatに追加すると、暗黙的に整数をfloatに変換してから、追加を実行する場合があります。
C ++は中間のどこかにあります。 C ++では、いくつかの暗黙的な変換が可能です。 CおよびC ++には、いくつかの抜け穴があります。まず、キャスティングと呼ばれます。キャストとは、基本的に、宣言された値ではなく、変数を「この型」としてコンパイラーに指示することです。たとえば、上記の例で、floatをintとして処理する場合は、floatをintにキャストできます。
例:int x、a; float y、b;
b = x + y; …