NTT DATA

DATA INSIGHT

NTTデータの「知見」と「先見」を社会へ届けるメディア

絞り込み検索
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
background-image-careers
2014年7月10日技術ブログ

モダンなプログラミング言語に浸透する「型推論」

最近のモダンなプログラミング言語は、型推論という機能を備えています。プログラムの保守性や生産性が向上するこの機能についてご紹介します。

プログラミングにおける型

Javaを始めとして多くのプログラミング言語は、変数や関数の引数にint(整数)やchar(文字)などの「型」を指定します。このようなプログラミング言語を「静的型付け言語」と言います。このように型を指定したプログラミングを行うと、エラーを早期(具体的にはコンパイル時)にチェックできるといったメリットがあります。例えば、int(整数)を10倍にするという関数の引数にchar(文字)型のデータを渡すとコンパイルエラーになる、といった具合です。しかし、全ての変数や関数に一つ一つ型を指定するという大変面倒な作業をしなければいけないデメリットもあります。

一方で、JavaScriptやRubyなど型を指定しなくても良いプログラミング言語もあります。こちらの言語は「動的型付け言語」と言います。動的型付け言語はプログラムを短く簡潔に書くことができる反面、静的型付け言語で可能なチェックが実行時にならないとできないデメリットがあります。

このように、静的型付け言語と動的型付け言語は一長一短です。しかし「型推論」という機能を用いると、両者のいいとこ取りをすることができます。

モダンな言語に浸透する「型推論」

型推論は、必要最小限の型を指定すれば、そこから「推論」できる型は自動的に指定してくれるという機能です(図)。この機能を用いれば、全ての変数や関数に型を指定しなくてもよく、エラーを早期にチェックできるというメリットも享受することができます。この型推論は、今年の3月にリリースされたJava8参考1や、6月に発表されたSwift参考2など、最近発表される静的型付け言語の多くが備えています。また、近年注目を浴びている関数型言語参考3のHaskellやScalaなどのプログラミング言語もこの機能を備えています。

今後は、型推論を備えたプログラミング言語が用いられることで、今までよりも少ない手間で静的型付け言語のメリットを享受できるようになると考えられます。NTTデータでも、リエンジニアリングツール参考4の開発で型推論を活用し、多くのデータ型の整合性を取りながら効率化を図っています。

【図版】

図:変数の方を推定する仕組み

お問い合わせ