静的型付け言語と動的型付け言語の違いとサンプルコード


プログラミング言語は大きく分けて「静的型付け」と「動的型付け」の2種類に分類されます。静的型付け言語は、変数の型がプログラムのコンパイル時に決定され、明示的な型宣言が必要なため、コードの安全性や実行時のパフォーマンスが向上することが特徴です。一方、動的型付け言語は、型が実行時に判断されるため、型の宣言が不要で柔軟性が高く、迅速な開発やプロトタイピングに適しています。以下、それぞれの特徴と代表的な言語、およびサンプルコードを示します。


静的型付け言語(せいてきかたづけげんご / Statically-Typed Language)

特徴:

  • 型の宣言: 変数のデータ型を事前に明示的に宣言する必要がある。
  • エラー検出: コンパイル時に型エラーが検出されるため、実行前にエラーが防げる。
  • パフォーマンス: 型が固定されているため最適化が行いやすく、実行速度が向上しやすい。
  • 保守性: 型が明示されることで、コードの意図が明確になり、他の開発者が理解しやすい。

代表的な言語:

  • C, C++, C#, Java, Swift, Rust, Go

サンプルコード (C# トップレベルステートメント)

  // 変数の宣言と初期化
  int number = 10; // 整数型
  string message = "Hello, World!"; // 文字列型

  // 数値の計算と表示
  int result = number * 2;
  Console.WriteLine($"{message} Result: {result}");

このコードでは、numberint型、messagestring型であることが明示されており、コンパイル時に型がチェックされます。トップレベルステートメントを使うことで、より簡潔に記述されています。


動的型付け言語(どうてきかたづけげんご / Dynamically-Typed Language)

特徴:

  • 型の柔軟性: 変数のデータ型が実行時に決まるため、型の宣言が不要でコードが簡潔になる。
  • エラー検出: 実行時に型エラーが検出されるため、実行前にすべてのエラーを発見するのが難しい。
  • 柔軟性: 型変換や柔軟なデータ型処理が容易で、スクリプト言語やプロトタイピングに向いている。
  • 実行速度: 実行時に型を決定するオーバーヘッドがあるため、静的型付け言語よりも遅くなることが多い。

代表的な言語:

  • Python, Ruby, JavaScript, PHP, Perl, Lua

サンプルコード (Python)

  # 変数の宣言と初期化
  number = 10  # 整数型として扱われる
  message = "Hello, World!"  # 文字列型として扱われる

  # 数値の計算と表示
  result = number * 2
  print(f"{message} Result: {result}")

このコードでは、numbermessageの型が明示されず、実行時に自動的に判断されます。


この資料を参考に、静的型付け言語と動的型付け言語の違いや特徴について理解を深めてください。

C#

Posted by hidepon