静的型付け | Programming Place Plus 用語集

トップページ用語集

名称

解説

プログラム実行を開始する前に、変数引数戻り値などのが決定済みであることをいいます。

ソースコードに型を明示的に記述したり、コンパイラ型推論と呼ばれる機能によってコンパイル時に決定されたりするなど、実行を始めるより前に型が決定できている場合、静的型付けであるといいます(あくまでも実行前であることが問題なのであって、必ずしもコンパイルで決定されるという意味ではないことに注意)。一方、プログラムの実行時に型が決定される(実際のが何であるかによって決める)ことを動的型付けといいます。

静的型付けでは、型と値が一致していないミスを、コンパイルエラー警告などのかたちであらかじめ検出できます(プログラマーが誤ったキャストを行うなどしていなければ)。一般的に問題の発見は早いほうがいいので、この特徴は利点として捉えられることが多いです。しかし、すべての値の型を明確にし、不整合なくソースコードを組み上げなければ、実行を行うことすらできませんし、同じ意味の処理でも、型ごとに記述しなければならないなど(C++ のテンプレートのような解決策はある)、柔軟性に欠ける面もあります。また、型が実行前に決定できていると、最適化をかけやすくなり、パフォーマンスの良いプログラムになる可能性が高まります。

動的型付けの場合、プログラムを実行する前に型に関する問題を検出しきれないため、問題があれば、実行時に実行時エラー例外として報告されることになります。荒く仕上げた状態でも実行してみて、完成している部分だけを確認することができますし、型に応じて処理を分岐させるなど、柔軟なプログラムを記述できる利点がありますが、問題のある箇所が実際に実行されない限り、そこに潜む間違いが検出できないということでもあります。

静的型付けを採用しているプログラミング言語静的型付け言語、動的型付けを採用しているプログラミング言語を動的型付け言語と呼ぶことがあります。ただし、基本的には静的型付け言語であっても、リフレクションと呼ばれる機能を使うなどして、動的型付けのような柔軟さを得られる言語もありますし、基本的には動的型付け言語であっても、型を指示する方法を備えている言語もあります。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る