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

IT用語を分かりやすく噛み砕いて、初心者でもスムーズに仕事の会話に参加できるように解説します。このIT用語辞典の目的は「会話についていく」であり、情報レベルは基礎中の基礎の会話についていけるレベルです。これさえ見れば仕事の会話は怖くない! IT用語辞典

ざっくりと

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

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

概要説明

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

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

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

職業職種

プログラマー

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

学生

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

ソフトウェアエンジニア

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

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

代表例

Microsoft

Microsoftは、Visual Studioという開発環境で知られている。その中に含まれるC#やVB.NETのコンパイラは、Microsoftの手によって作られたものだ。

GCC

GCCは、GNU Compiler Collectionの略で、フリーのコンパイラ集だ。CやC++、Javaなど、さまざまなプログラミング言語をサポートしている。

LLVM

LLVMは、コンパイラのフレームワークで、さまざまな最適化や生成機能を提供する。Appleの開発環境Xcodeでは、LLVMが使われている。

手順例

プログラムを書く

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

ファイルに保存

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

コンパイルする

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

類似語

インタプリタ

インタプリタもプログラムを機械語に翻訳するが、コンパイラと違って一行ずつ変換してすぐに実行する。PythonやRubyなどはインタプリタ型の言語だ。

アセンブラ

アセンブラは、人間が読みやすい形式のアセンブリ言語を機械語に変換する。最も基本的なコンピュータの命令を扱う。

リンカ

リンカは、複数のオブジェクトファイル(コンパイラの出力)を結合して一つの実行可能ファイルを作る。ライブラリのコードとメインのコードをつなぎ合わせるのもリンカの仕事だ。

反対語

インタプリタ

インタプリタは、コンパイラとは反対だ。なぜなら、コードを一行ずつ即時に実行するからだ。例えばPythonはインタプリタ言語。

デコンパイラ

デコンパイラも反対の概念だ。なぜなら、機械語をソースコードに戻す作業だからだ。例えばJava Decompiler。

ソースコード

ソースコードは、コンパイラとは全く違う。なぜなら、コンパイラが翻訳する元の言語そのものだからだ。例えば、JavaやPythonのプログラム。

会話例

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

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

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

注意点

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

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

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

当IT用語辞典の目的は「会話についていく」であり、情報レベルは基礎中の基礎です。さらに正確性、具体性、最新性を求めてる方は、もっとググってください。
YouTubeのチャンネル登録はこちら!!
( *ˊᵕˋ)σ 凸ポチッと応援よろしくね!!
開発・運営ランキング にほんブログ村 IT技術ブログ IT技術情報へ
記事を書いてる人
病根のバグ

ガラケー時代からWEB開発やってるバツイチ自宅SEです。不眠不休で働くので、ブログのブックマークとYouTubeのチャンネル登録とXのフォローお願いします。デスマ上等!!

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

病根のバグのSNSを覗く!!
IT用語辞典
病根のバグのSNSを覗く!!
ITkagyo

コメント

タイトルとURLをコピーしました