初めに
この記事の対象者はプログラミング初心者。 授業の復習がてら自分の言葉でまとめています。
改めてプログラミング言語とはなんだろうか?
コンピュータが理解できるのは機械語、人間が理解できるのは自然言語(例: 日本語)。
この二つには隔たりがある。
話す言語が違う二人が会話するためには通訳を入れるか、どちらかがもう一方の言語を覚える必要がある。
しかし機械語を人間が覚えるのは非常に難しく、その逆でコンピュータが自然言語を理解するのは原理的に不可能。
なので通訳を入れてあげる必要がある。
しかし人間の通訳は機械語を理解できないので、適さない。
そこで通訳の代わりをする仕組みがプログラミング言語である。
人間が少しだけ機械に歩み寄り、機械語に翻訳しやすい形で命令を書く。 その翻訳しやすい文章を「コンパイラ」と呼ばれる翻訳者が機械語に変換するのだ。
この機械語に翻訳しやすい形での命令が通称プログラミング言語と呼ばれる。
C言語とそのコンパイラ
C言語はプログラミング言語の一つで、そのC言語を機械語に翻訳するコンパイラにはいくつかの種類がある。 今回はgccを取り上げる。
C言語とgccを実際に使ってみることで、先程の説明を体感してみよう。
事前準備
macなのでlimaを使う。 limaのインストール方法
limactl start C
上記でCというvirtual machineを立てる。
vscodeで作業したいのでssh接続する。(参考記事)
ここからの作業はvscode上で行う。
最後にこの後使うgccをインストールしよう。
suto apt install gcc
これで準備完了。
Hello worldしてみる
どこでも良いのでファイルを作ってC言語を書いてみる。 今回はホームディレクトリ下にdevディレクトリを作ってそこに書いてみる。
cd ~ mkdir dev cd dev
vscodeを見ると新しいフォルダができていると思うので、クリックして新しいファイルを追加しよう。
自分はhello.cという名前にした。
hello.cの中に以下のコードを書いてみる。
#include<stdio.h>
int main()
{
printf("Hello world!\n");
}
中身の解説は今回はしない。
ファイルを保存したら、vscodeからターミナルを開いて以下のコマンドを打ってみよう。
gcc hello.c
a.outというファイルが新しく作られているだろう。 これは、C言語で我々が書いたコードをgccというコンパイラが機械語に翻訳した物だ。
ここで機械語のコードが生まれているので、これをコンピュータで実行してみよう。
./a.out
おそらくターミナルにHello world!と表示されているだろう。
先ほど説明した、C言語→コンパイラ→機械語の変換の流れを体験できたであろう〜!