コンパイラとは?プログラムの翻訳を解説

ざっくりと

  • ソースコードを翻訳する
  • コンピューターが理解できる言語に変換
  • プログラミングとコンピューターの橋渡し役

コンパイラとは、ソースコードをコンピューターが理解できる言語に翻訳する役割を持ります。

概要説明

コンパイラとはプログラムの翻訳家である。なぜなら、人間が書いたソースコードをコンピューターが理解できる形に変換するからだ。

例えば、C言語のコードであれば、コンパイラはそれを機械語に翻訳する。そして、その結果、コンピューターは命令を実行できる。つまり、コンパイラは人間とコンピューターのコミュニケーションを可能にする。

だから、コンパイラはプログラミングの世界で必要不可欠な存在なのだ。

職業職種

  1. プログラマー
    プログラマーは、コンパイラを頻繁に使う。なぜなら、彼らが書いたソースコードをコンピューターが理解できるようにするためだ。例えば、コンパイラがなければ、書いたコードはただの文字列に過ぎない。

  2. 学生
    学生は、コンパイラを学ぶ。なぜなら、コンピューターサイエンスの勉強を深めるためだ。例えば、プログラミングの基礎を学び、実際にコードを書く時には、コンパイラがどのように働くかを理解していると役立つ。

  3. ソフトウェアエンジニア
    ソフトウェアエンジニアは、コンパイラを使って製品を開発する。なぜなら、コンパイラを通じて彼らのアイデアが具体的な形を持つからだ。例えば、新しいアプリケーションを開発する時、コンパイラはソースコードを実行可能なプログラムに変換する。

コンパイラの名前の由来は、英語の”compile”(編集)から来ています。これはソースコードをまとめて、コンピューターが理解できる形に「編集」するという機能を表しています。

代表例

  • Microsoft
    Microsoftは、Visual Studioという開発環境で知られている。その中に含まれるC#やVB.NETのコンパイラは、Microsoftの手によって作られたものだ。
  • GCC
    GCCは、GNU Compiler Collectionの略で、フリーのコンパイラ集だ。CやC++、Javaなど、さまざまなプログラミング言語をサポートしている。
  • LLVM
    LLVMは、コンパイラのフレームワークで、さまざまな最適化や生成機能を提供する。Appleの開発環境Xcodeでは、LLVMが使われている。

手順例

  1. プログラムを書く
    まず、C言語で何か書いてみよう。例えば、”Hello, World!”と表示するプログラムを書いてみよう。

  2. ファイルに保存
    次に、そのコードをファイルに保存する。このとき、拡張子を”.c”にしよう。

  3. コンパイルする
    コマンドプロンプトを開き、GCCなどのコンパイラを使ってコードをコンパイルする。このとき、gcc source.c -o outputと入力しよう。ここで、source.cはソースコードのファイル名で、outputは生成される実行可能ファイルの名前だ。

  4. ファイル生成
    コンパイルが成功すれば、実行可能ファイルが生成される。コマンドプロンプトで./outputと入力すれば、プログラムが実行される。

類似語

  • インタプリタ
    インタプリタもプログラムを機械語に翻訳するが、コンパイラと違って一行ずつ変換してすぐに実行する。PythonやRubyなどはインタプリタ型の言語だ。
  • アセンブラ
    アセンブラは、人間が読みやすい形式のアセンブリ言語を機械語に変換する。最も基本的なコンピュータの命令を扱う。
  • リンカ
    リンカは、複数のオブジェクトファイル(コンパイラの出力)を結合して一つの実行可能ファイルを作る。ライブラリのコードとメインのコードをつなぎ合わせるのもリンカの仕事だ。

反対語

  • インタプリタ
    インタプリタは、コンパイラとは反対だ。なぜなら、コードを一行ずつ即時に実行するからだ。例えばPythonはインタプリタ言語。
  • デコンパイラ
    デコンパイラも反対の概念だ。なぜなら、機械語をソースコードに戻す作業だからだ。例えばJava Decompiler。
  • ソースコード
    ソースコードは、コンパイラとは全く違う。なぜなら、コンパイラが翻訳する元の言語そのものだからだ。例えば、JavaやPythonのプログラム。

会話例

  1. 学校の授業
    Q.「授業でJavaを使うけど、コンパイラって何?」
    A.「コンパイラは、君が書いたJavaのソースコードをコンピュータが理解できる形に変換してくれるよ。」

  2. 友達との話題
    Q.「あいつ、Pythonしか使えないって聞いたけど、それってコンパイラがないからじゃない?」
    A.「それは違うよ。Pythonはインタプリタ型言語だから、一行ずつ実行するんだ。」

  3. プロジェクトの進行
    Q.「このコード、なんでコンパイラ通らないの?」
    A.「そこの構文が間違ってるからだよ。」

注意点

コンパイラを使用する時の注意点はソースコードのエラーだ。なぜならば、構文エラーやランタイムエラーがあるとコンパイラは動作しないからだ。

例えば、Javaでセミコロンを忘れるとエラーになる。そしてエラーはコンパイラが教えてくれる。だから、エラーメッセージはちゃんと読もう。

コンパイラとインタプリタは、間違えやすいので注意しましょう。コンパイラは全てのコードを一度に機械語に翻訳し、インタプリタは一行ずつ即時に実行します。

記事を書いてる人

ガラケー時代からWEB開発やってる自宅SE です。

「○○を知りたい!!」「○○が分からない!!」などありましたら、Twitterでもブログでもコメントいただければ、ご期待に添えるように頑張ります!

ネット事件簿チャンネルを運営しているので、YouTubeもぜひ覗いてみてください!!

雨おやじのSNSを覗く!!
IT用語辞典
雨おやじのSNSを覗く!!
ITkagyo

コメント