プログラミング言語とは

こんにちは。今回は、プログラミング言語とはどういうものなのかについて考えていきたいと思います。

コンピュータはどうやって動いているか

コンピュータを動かすにはプログラミングが必要ということはよく言われていると思いますが、コンピュータはどうやって動いているのでしょうか。

コンピュータは勝手に動くことはありません。コンピュータには命令をすることができ、その命令通りにコンピュータは動きます。例えば、「1+1を計算する」「その結果を画面に出す」というように命令を用意して、それをコンピュータに読み込ませて、実行させるという形です。すると、画面に「2」と表示されます。

コンピュータにはその命令を書き込んでおく場所があり、電源が入ると、そこに書かれている命令を端から順番に実行していきます。コンピュータは全てこのようにあらかじめ命令を用意して、それを実行するということをやっており、スマホのゲームでもワクチンの予約システムでも天気予報の巨大なシステムでも同じ仕組みで動いています。

プログラミング言語とは

その命令を人が書ける形にしたのがプログラミング言語です。言語ということなので、日本語とか英語のような文章ではあるのですが、コンピュータに命令するためのものなので、その意味するところは明確である必要があります。日本語や英語のような人間が話すような言語だといろんな解釈ができてしまうので、プログラミング言語は表現ももっと単純で書き方もその意味もきっちりと決まったものです。例えば、

x = 1 + 1

print(x)

というようなものです。1行目は、1 + 1 を計算して、その結果を x という入れ物に入れるという意味です。2行目は、そのxという入れ物に入っているものを画面に表示するという意味です。これを実行すると画面に

2

と表示されます。このようにプログラミング言語で書いた命令をプログラムと言います。ここでは2行だけのプログラムでしたが、これも立派なプログラムです。

プログラムは、料理のレシピに似ています。どんな複雑な料理でも手順があり、それをレシピに書くことができます。どんな材料を用意し、それをどんな手順で下ごしらえし、下ごしらえしたものを組み合わせてどう調理するのかを手順としてレシピに書きます。プログラムも同じようにどんな大きな複雑なシステムでもそれを分解して、それぞれどういう手順で何をするのかをプログラムで書きます。

プログラミング言語と自然言語の違い

先ほど、プログラムは料理のレシピに似ているという話をしました。では、レシピで使っている日本語でプログラムは書けないのでしょうか。日本語で書ければ、プログラミング言語の勉強をしなくてもいいように思いますよね。

結論から言いますと、日本語ではプログラムは書けないのです。日本語のように人が話す言語のことを自然言語と言います。自然言語とプログラミング言語には決定的な違いがあります。それは、書いたものの意味が一つしかないか、複数ありえるかということです。プログラミング言語で書いたプログラムは、必ず意味が一つしかなく、解釈の違いが起こらないようになっています。そうでないと、コンピュータはどう実行すれば良いかが決まらず、困ってしまいます。もし、複数の意味があるようなプログラムを書けてしまうプログラミング言語があったとしたら、それはプログラミング言語としては失格です。日本語だと、どうしても複数の意味があり得ますので、日本語でプログラミングすることはできないというわけです。

プログラミング言語の中には、英単語を使ったものが多くあります。やはり、世界中で使うためのプログラミング言語なので、共通で理解しやすい英単語(if とか printなど)を使うことが多いのです。しかしながら、その英単語は英語のように見えますが、意味は必ず一つになりますので、単に英単語を使っているだけで、実は英語とは異なるプログラミング言語ということになります。

プログラミング言語にも種類がたくさんある

先ほどの2行のプログラムは、実はPythonというあるプログラミング言語で書いたものです。自然言語には、日本語、英語と多くの言語があるように、プログラミング言語にもとても多くの種類があります。プログラミングしたい対象の種類や目的、用途に応じて、それに適したプログラミング言語が作られています。どのプログラミング言語を使ってプログラミングするのかは、その用途やプログラミングする人の経験やスキル、好み(?)によって選ばれます。

たくさんの言語を知っていれば、目的に応じて適切なプログラミング言語を選ぶことができます。ですが、たくさんの言語を知らなくても、まずは1つ勉強して、プログラミングとはどんなもので、どういう風にすれば好きなプログラムを作ることができるのかを体験することができます。それができれば、あとは必要に応じてプログラミング言語を勉強することでどんなことでもできるようになっていきます。

「fromZEROでAI体験 for School」のScratchコースでは、Scratchというプログラミング言語を使っています。これは子どもがプログラミング言語を勉強するのにとても適したもので、世界中で使われています。次回は、このScratch言語について考えていきたいと思います。

>人工知能(AI)の入門なら体験して学べる 「fromZEROでAI体験」

人工知能(AI)の入門なら体験して学べる 「fromZEROでAI体験」

AI時代を生き抜くためには、開発者だけでなく利用者も「AIとは何か」を知ることが重要です。私たちは、すべての人に「AIとは何か」を知ってもらうために、AIを体験して学べるオンライン学習サービス「fromZEROでAI体験」をはじめました。

CTR IMG