|
型推論(かたすいろん)とはプログラミング言語の機能の1つで、静的な型付けを持つ言語において、変数や関数の型を宣言しなくてもそれを導くのに使われた関数の型シグネチャなどから自動的に型を決定する機構のこと。 推論に失敗するとその時点でエラーを報告できるため、少なくとも誤った型を用いる事によるバグは回避できる。また、記述をアルゴリズムに集中できるのでプログラムの抽象度が上がるというメリットもある。 代表的な型推論アルゴリズムとして、Hindley/Milner 型推論アルゴリズムがある。各々著名なコンピュータ科学者の名前からつけられた名前であるが、Hindley は論理学者として型推論システムを先に開発した。 型推論を持つ言語としてはHaskell、ML、Vala、C#、Java、Scala、OCaml、D言語、Concurrent Clean、C++11、Swiftなどがある。静的型付け関数型言語のほとんどがなんらかの型推論の機能を持っている。 ==非技術的な説明== ほとんどの言語においては、関数の仮引数および戻り値やローカル変数等は、それらがもつデータの種類を表す型をもつ。実行時にならないと型がわからない言語を動的型付けの言語という。一方、コンパイル時に型がわかる言語を静的型付けの言語という。静的型付けの言語において、関数の仮引数および戻り値の型やローカル変数の型は、通常は明示的に表記する必要がある。例えば、次はC言語の例である。 int addone(int x) 関数定義の最初の行 int addone(int x) では、addone は整数一つを入力としてとり、整数を結果として出力する、と宣言している。int result; の行では、ローカル変数result が整数型であることを宣言している。型推論の機能がある言語では、例えば次のように書くことができるだろう。 addone(x) この書き方は動的型付けの言語に非常によく似ているが、しかしながらすべての型はコンパイル時に定められる。この仮想的な例では、 + 演算子は常に二つの整数を一つの整数に変換する。これから、x+1 の値が整数であることが型推論によって推論される。故にresult の型は整数であり、addone の返り値が整数であることがわかる。同様に+ 演算子が入力として整数をとることからx が整数であることがわかり、addone の引数の型が整数であることがわかる。抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「型推論」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Type inference 」があります。 スポンサード リンク
|