「コンパイル言語」と「静的型言語」の違い

コンパイル言語は実行前にコンパイルが必要、静的型言語は変数の型を事前に指定する必要があります。

コンパイル言語

コンパイル言語とは、プログラムを機械語に変換するコンパイル処理を実行前に行う必要がある言語です。C、C++、Java、Rustなどが該当します。コンパイル時にエラーチェックが行われ、実行ファイルが生成されます。実行速度が速く、最適化されやすい利点があります。

例:C言語のプログラムをgccコンパイラでコンパイルして、実行ファイルを生成してから実行する。

静的型言語

静的型言語とは、変数や関数の戻り値に型を事前に明示的に指定する言語です。C、Java、TypeScript、Goなどが該当します。コンパイル時に型チェックが行われるため、型に関するバグを早期に発見できます。コードの安全性と可読性が向上します。

例:JavaScriptでTypeScriptを使い、const value: number = 42; と型を指定する。

両者の違い

コンパイル言語は『実行プロセス』に関する属性で、実行前に機械語への変換が必須です。一方、静的型言語は『型管理』に関する属性で、変数の型を宣言時に指定します。両者は独立した概念で、静的型言語でもインタプリタ言語でも存在します。Javaはコンパイルかつ静的型、Pythonはインタプリタかつ動的型です。

どちらを使うべき?判断のポイント

高速処理や組み込みシステムが必要ならコンパイル言語を選択。型安全性やバグ防止を優先するなら静的型言語を選択。実際には両方の特性を持つ言語も多いため、プロジェクト要件で判断します。

それぞれの語をさらに詳しく

語彙の星図で「コンパイル言語」と「静的型言語」のつながりを探索する →