2020年12月03日

プログラミングの話

最近は、コンピュータやマイクロプロセッサの話ばっかですが、今回もです…

コンピュータ(マイクロプロセッサ)を実際に動かすには、どうしたら良いのでしょうか?

動かすための指示が書かれたものが「プログラム」ですが、以前書いた通り、コンピュータは0と1しか理解できません。
ですから「1と2を足せ」と人間の言葉で命令しても、動くことは出来ないのです。
ですので、コンピュータにもわかるように0と1だけで命令を作り、それを実行させる必要があります。
0と1だけで書かれていて、コンピュータが直接理解できるプログラム言語が、機械語です。機械語は、16進数の羅列でしかないので、ぱっと見何が書かれているのか、さっぱり解りません。(実際には16進数を2進数に変換してコンピュータは理解します)

マシン語.png

これを、もう少し人間にも判りやすくしたものとして「アセンブラ言語」です。

アセンブラ.png
これでも、まだよくわかりません…

もっと、人の使っている言語(英語)に近づけようと、色々な言語が開発されました。
現在、使われている言語の1つにBASIC言語があります。
下記はもっとも簡単なプログラム例です。実行すると後ろの実行画面に結果が出力されます。

BASIC.png

プログラムとしては「変数AにHello変数BにWorld という文字列を代入しなさい」「変数A+Bを表示しなさい」という内容で、表示も英語やよく使う記号だけで書かれているので、とても分かりやすくなっています。

BASICの様に最初の行(10行)から順番にプログラムを実行(機械語に変換して)する言語形式を「インタープリタ」方式と呼びます。
行番に従って順番にプログラムが実行されるので、大変解りやすいのですが、プログラムが複雑になってくると、どうしてもスピードが遅くなります。

そこで、プログラム全体をいっぺんに機械語に変換して(コンパイルと言います)実行効率を上げた言語が「コンパイラ」方式と呼ばれる言語です。
コンパイラ方式では、記載されたプログラムを一度に機械語に変換(コンパイル)してくれるので、中規模以上のプログラムでは実行速度が上がるといった利点があります。
代表的な言語にC、C++、JAVA等があり、特に、C、C++は現在のプログラム開発環境のスタンダードとも言えるほど普及した言語です。

C_.png
C、C++などは、利点もありますがBASICなどと比べると、細かいルールやポインタと言う少し解りづらい機能もあり、取っ付きにくいのですが、汎用性が高く、実用的なので、いきなりC、C++からプログラムを覚えるのも良いと思います。

BASICは、変数の型(整数、文字列等)をあらかじめ宣言していなくても、実行できますが、C、C++のルールである変数の型の宣言をすることによって、プログラムが整理されて、見やすくなります。

最近もてはやされている言語にPython(パイソン)があります、GoogleやInstgramもPythonで書かれたものです。
Pythonはインタープリタ言語で、C、C++の様な実行スピードは期待できませんが、BASIC並みの解りやすい構文と、豊富なライブラリ(汎用的に使う簡単なプログラムを纏めてあり自由に呼び出せる)で、複雑なプログラムでも、短時間に書くことができます。

「ユーザーにあったアプリケーションを短時間で、簡単に構築出来る」ことが、今のニーズにマッチしているのかもしれません。
実際に、技術系の学校ではPythonプログラミングが必修になりつつあります。


余談ですが、その昔に技術系の大学生だった方は、「プログラミング実習」ではFORTRANを使った方が多いと思いますが(私もです)今はほとんど見なくなりましたね…

プログラミングもより「簡単」で「誰でも使える」といった方向にこれからも進化していくのでしょう


記事投稿:池田

posted by towa at 11:54| まめちしき | このブログの読者になる | 更新情報をチェックする