Caliphです。今回は、c言語を動かす上で一番重要な「コンパイル」について説明していきたいと思います。

コンパイルについて、「ちょっと何言ってんのか、全くわかんない。」という方でもこの記事を読めば、コンパイルというものが、なんとなく理解できるので安心してください!
C言語のコンパイルってなに?
それでは具体的に説明していきたいと思います。
コンパイルとは
実は、コンピューターというものは、0と1しか理解することができません。要するに、コンピュータは、文字列で記述されているc言語を、直接理解することができないのです。
そこで必要になるのがコンパイルです。
c言語のプログラミングでは、コンピューターに命令を実行させる時に、人間が書いたc言語のコードを0と1で書かれている機械言語というものに翻訳します。この時におこなう、
【c言語】 → 【機械言語】
という翻訳作業の事をコンパイルと言います。ちなみに、このコンパイルをするソフトのことをコンパイラと言います。
とりあえず、以下の様なイメージを持っておきましょう。
- コンピュータは、c言語を直接理解することができない
- 人間は、0と1の機械言語を理解するのが困難
- 人間の理解できるc言語からコンピュータの理解できる機械語にコンパイル(翻訳)する必要がある
C言語はコンパイルのおかげで爆速
c言語は、他のプログラミング言語と比較して、実行速度がとても速いと言われています。
この速さの理由、実はコンパイルが関わっているんです。
例えば、Javaや、Python、Rubyなどのプログラミング言語には、コンパイルという作業がありません。しかし、コンピュータは文字列を理解することができないので翻訳という作業自体は必要です。そこでこれらの言語は実行時に1文ずつ機械語に翻訳しながら実行されます。(1分ずつコンパイル)
このタイプのプログラミング言語は、1つずつ翻訳(コンパイル)しながら実行するので、プログラムの実行速度が非常に遅いのです。(インタプリンタ型)
それに比べ、c言語は、実行する前に全てのコードを、まとめて翻訳(コンパイル)するので、実行時に余計な動作がなく、爆速になるというわけです。(コンパイル型)
短いプログラムだと、実行速度に、あまり差が生まれませんが、大規模なプログラムになってくると、びっくりするほどの差が出てきます。
C言語で使われているコンパイラの種類
次に、c言語を機械語に翻訳するコンパイラの種類について紹介します。
コンパイラには、大きく分けて2種類あります。1つ目は、ウェブサイトにアクセスして使うタイプのコンパイラです。(オンライン)
2つ目は、自分のパソコンや、タブレット、スマホなどにインストールして使うパッケージ型のコンパイラです。(オフライン)
オフライン型のコンパイラ
まずはじめに、c言語をインターネットに接続していない時でもコンパイルすることができるコンパイラの紹介をします。
本格的に勉強し始めると、gccなど必要になってくるので、必要な方は、インストールしましょう。
具体的には、以下の様な有名なオフラインコンパイラがあります。
- gcc
- clang
- Visual C++(VC)
このサイトではc言語をコンパイルをするときのオフラインコンパイラは、この中でも1番使いやすいgccを使用していきたいと思います。
gccとは、GNU Compiler Collection の略であり、GNUが作成したオープンソースのコンパイラです。Linuxなどには、標準インストールされているコンパイラで世界標準だと言っても過言ではありません。
完全に無料なのに、とても性能が高いので、オフライン型のコンパイラの中では、このソフトが一番おすすめです。
オンライン型のコンパイラ
次に、インターネットに繋がったままの状態で使用するオンラインコンパイラについて紹介します。このタイプのコンパイラは、面倒なインストールや設定が必要ないので、初めのうちは、使用することをおすすめします。
オフラインコンパイラには、以下の様な種類のものがあります。
- ideone.com
- coding graound
- codechef
オンラインコンパイラは、この中でも1番わかりやすく使いやすい「ideone.com」の使い方を説明していきます。
デザインがとてもよく、英語のサイトなのに、説明が全くいらないほどわかりやすいです。
機能も充実しており、基本的なことは全てできます。初心者の方にはとてもお勧めです。
ideoneの使い方
使い方が、複雑なオフラインコンパイラの前に、まずは、簡単でわかりやすいオンラインコンパイラの使い方を説明していきたいと思います!
特に初心者の方は、こちらの方を使うことをおすすめします。
使ってみよう!
まずはじめに、以下のソースコード(プログラム)をコピーしましょう。
※このサイトでは、ソースコードをダブルクリックすると、全選択することができます。
実際にプログラムを見るのが初めての方もいるかもしれませんが、この文字の羅列が、プログラムです。
コピーできたら、次に、ideone.com の公式サイトにアクセスしましょう。
以下の画像の様な画面が表示されるので、赤丸で囲ってある場所”①”に、元々のコードを消し、先ほどコピーしたソースコードをペーストしましょう!
その次に、”②” という場所で使用する言語の選択をします。今回は、c言語を使用するので、”②” をクリックし、”C” を選択しましょう。
次に、ペーストし、c言語を選択することができたら、画像中の”③”の場所にある ”RUN" というボタンを押します。
以下の画像の、赤い枠で囲った所の様に「コンパイル成功!!」と表示されれば、コンパイル成功です。
ideone.comで入力をする場合
学習が進みオンラインコンパイラでscanf関数などを使いキーボードから入力をする場合は、以下の様にしましょう。
③というところにあるstdinというのが標準入力という意味で、ここをクリックすると、入力欄が出てきます。そこに、入力したい値を記述して、そのあとに、RUNをクリックしましょう。
出力結果は、以下の様にみることができます。
結果の画面に切り替わったら、stdoutという欄のcopyというところをおして、テキストエディタなどにペーストすると、出力結果をみることができます。
gccの使い方
次に、オフラインコンパイラであるgccの導入方法を解説していきたいと思います。
windows環境の方は、オンラインコンパイラを使用した方が簡単です。
※自己責任です
Linuxの場合
Linuxには、標準でこのgccコンパイラがインストールされているので、改めてインストールする必要は、ありません。
使い方は、後述します。
macの場合
macの場合は、Homebrewという機能を使用します。
はじめに、アプリケーションフォルダの中のユーティリティフォルダーにインストールされているターミナルを起動しましょう。
起動できたら、以下の様に入力し、インストールを実行します。
brew install gcc
コンパイルの方法
それでは、簡単なc言語のプログラムを、実際にコンパイルしてみましょう!
まずはじめに、テキストエディタや、メモ帳などで以下の様に入力しましょう。
※コードをダブルクリックすると全選択できます。
次に、このプログラムを入力したプログラムを test.c という名前でDesktopに保存します。
この、 ファイルの名前.c というところがとても重要なので忘れないでください。
次に、ターミナルを起動し、以下の様に入力します。
今は、意味わからなくても大丈夫大です!
cd desktop
それでは、コンパイルしていきます。
以下のコードをターミナルに入力し、エンターを押すと、プログラムがコンパイルされます。
gcc というのが、”コンパイルする” という意味で、test.cというのが”c言語で記述されたtestというファイル” という意味です
gcc test.c
最後に、コンパイルしたプログラムを実行してみましょう!
以下のコードをターミナルに入力してください。
./a.out
”コンパイル成功!!”
と表示されれば、プログラムの実行は成功です。
失敗してしまった方は、もう一度間違えているところがないか、ファイルの名前など確認しましょう。
実行に成功した方は、デスクトップを確認すると、”a” という実行ファイルが存在すると思います。これは、c言語をコンパイルして、作成されたコンピュータが理解できる実行ファイルです。
まとめ
コンパイルができる様になりましたね!
この調子でどんどんソースコードを書きまくっていきましょう。
