第12回 プログラミング言語

今回はプログラミング言語について説明します。

言語?

ちょっと長い道のりでしたが、最初のスケッチを作成してArduinoを動作させてみました。

Arduinoを動かすための指示書のことを「スケッチ」と呼んでいましたが、コンピュータを動作させるための指示書のことを一般的には「プログラム」と呼びます。今後の記事では「スケッチ」「プログラム」という言葉を使いますが両方同じものと思って大丈夫です。

前回の記事で作成したスケッチではいくつかの命令を使用しましたが、これからもっとたくさんの命令が出てきます。スケッチでは命令の書き方が厳密に決まっていましたよね(1回わざと怒られてみました。厳しかったですよね)。これからこのような厳密な命令の書き方をたくさん覚えていきます。

プログラムは、このようにたくさんの「命令」と「書き方」が決まっていることから、動作をコンピュータに伝える「言葉」というとらえ方をして「プログラミング言語」と呼んでいます。

これだけだと「言語」と呼ぶ理由がちょっとわかりづらいかもしれません。人が話す「言語」は単語の集まりがあり、その単語の組み合わせ方、つまり文法が決まっています。プログラムもこれと似ているので「言語」と呼ばれています。

プログラミング言語

この「プログラミング言語」は1種類だけ存在する、というわけではありません。人が話す言語は、日本語、英語、中国語などたくさんあるように、プログラミング言語もたくさんあります。

プログラミング言語について、もう少し用語を覚えておきましょう。人が話す言語では、単語から文章を組み立てるルールを「文法」と呼んでいます。

プログラミング言語でも同じように、命令の書き方のルールを「文法」と呼んでいます。

また、中学3年の英語ででてくると思いますが「so … that〜」という表現の仕方を勉強しましたよね(まだ勉強していなかったらごめんなさい)。例えば

“I was so sleepy that I could not study programming. ”
(とても眠かったのでプログラミングの勉強ができなかった)

というように、「so A that B」という使い方をすると、「とてもAなのでB」という意味になります。このように決まった言い方のパターンを「構文」といいます。

プログラミング言語でも、決まったパターンの書き方を「構文」と呼んでいます。ただプログラミングの「構文」についてはまだイメージがつかめないと思いますので、ここでは言葉を聞いたことがある、という程度で問題ありません。

次回以降の記事では、普通の言語で使われる「文」「文法」「構文」などの言葉が出てきますので、ちょっと「?」と思ったら今回の記事の内容を思い出してみてください。

 

Arduinoのプログラミング言語は?

ところで、Arduino IDEで使用しているプログラミング言語は何という言語なのでしょうか。

Arduinoの公式ページでは「Arduino言語」と説明されていますが、実際の中身は「C/C++言語」です。この基礎編のシリーズで習得するプログラミング言語は「C言語」と理解していただいて問題ありません。基礎編を習得すると、C言語プログラミングの基礎部分を理解できるような説明の進め方にしています。

あらら、またわからないことが出てきました。

「C/C++言語」って言ったのに「C言語を習得します」って「C++」ってどこに行ってしまったんでしょうか。

「C/C++言語」とは「C言語」と「C++言語」の2つの言語のことを指しています。これらの言語は密接な関係があります。というのは、もともと「C言語」というプログラミング言語がありました。その後、C言語を元に進化させた「C++言語」というものが作られました。C++言語はC言語を元にしているため、「C++言語」は「C言語」を含んでいるんです。C言語とC++言語については、今のところこのぐらいの理解で問題ありません。なお、基礎編パート2ではC++言語も少し出てきます。

ところで、「C++」って何でプラス記号を2つ連続で使ってるんでしょうか。C言語を発展させた言語であれば「C+言語」とか「C言語アドバンス」とかでもよさそうですが…この「++」の意味は基礎編で出てきます。

次に「Arduino言語」について補足しておきます。

すでに調べた方もいるかもしれませんが、C言語は習得が難しい、と言われています。確かに初学者の人にはとっつきにくいところがあります。そこで、Arduino言語では、C言語の難しい部分はなるべく使わなくてもプログラミングできるように作られています。そのため、C言語は難しいとはいっても、Arduinoでプログラミングを習得するのはそれほど難しくありません(それも人気の理由のひとつです)。

なお、Arduino言語はC/C++言語ですので、Arduino IDEでC言語やC++言語をフルに使うこともできます。そこでこのシリーズでは、基礎編ではArduino言語の入門のしやすさを利用してプログラミングの基礎を学び、応用編に進むにつれてC言語の難しい部分も習得していこうと思います。

これからだんだん複雑なスケッチを作っていきますが、なぜそのようになってるのか、なるべくわかりやすく説明しますので、一緒にC言語を自分のものにしましょう!

 

他のプログラミング言語も気になりますよね

ところで、プログラミング入門のサイトや本をみると、初心者向けに「Python」(パイソン)や「JavaScript」(ジャバスクリプト)というプログラミング言語が使われていることが多いです。特に「Python」は機械学習や深層学習などの人工知能プログラミングで人気がありますので、ちょっと調べた方でしたら目にした方も多いと思います。

プログラミング言語はさらに他にもたくさんあります。このような情報をみると他のプログラミング言語も気になってしまいますよね。とはいっても、最初は学習しやすいArduinoでC言語を習得することをお勧めします。

C/C++言語は、他の言語に比べてちょっと難しい分、コンピュータの基礎部分を深く理解できます。一方でPythonなどのプログラミング言語は習得しやすい分、コンピュータの基礎部分を隠してしまっています。

そのため、C言語を勉強してから他のプログラミング言語を習得すると、どこをどのようにしてプログラミングを容易にしているのか、とてもよくわかります。

さらに、Arduinoの場合、最初はC言語の難しい部分は使わなくてもプログラミングできますし、C/C++言語をフルに使おうと思えば使えます。

そこで、先ほど書いたように、このシリーズでは、基礎編ではArduino言語の入門のしやすさを利用してプログラミングの基礎を学び、応用編に進むにつれて、あえてC言語の難しい部分も習得していきます。ここまでのC言語が一通りわかれば、他のプログラミング言語はかなり楽に早く習得できるようになります。

また、このシリーズでは、ところどころで他のプログラミング言語の場合、どのようにプログラムを書くのか説明する予定です。最初の方で他のプログラミング言語を説明すると混乱してしまいますので、基礎編の後半でプログラミングに慣れてきたぐらいから説明したいと思います。

それでは次回からキッチンタイマー完成に向けてスケッチ作成を再開しましょう!

 

 

更新履歴

日付 内容
2019.7.20 新規投稿