プログラミング言語

静的型付けと動的型付け

静的型付けでは、全ての式の型はそのプログラムを実行する前(一般にコンパイル時)に決定される。例えば、1 とか (2+2) という式は整数型であり、文字列を期待している関数には渡せず、日付(型)を格納するよう定義された変数には代入できない。静的型付け言語は、型を明記する場合と型推論を行う場合がある。前者ではプログラマは適切な位置に型を明記しなければならない(例えば、変数の宣言文など)。後者では、コンパイラが式の型を文脈から推論する。C++Javaなどの主な静的型付け言語では、型を明記する。完全な型推論は主流でない言語に使われている(HaskellML)。ただし、型を明記する言語でも部分的な型推論をサポートしていることが多い。たとえば、JavaC#では限定された状況で型推論を行う。動的型付けでは、型の安全性を実行時に操作する。言い換えれば、型はソース上の表現ではなく、実行時の値に対して付与される。型推論言語と同様、動的型付け言語でも式や変数の型を明記する必要はない。また、ある1つの変数がプログラム実行中に異なる型の値を格納することも可能である。しかし、コードを実際に実行してみるまで型の間違いを自動的に検出することができず、デバッグがやや難しい。動的型付け言語としては、RubyLISPJavaScriptPython などがある。

戻る