プログラミング言語
プログラミング教育が何で必要なんだろう、というテーマで目的とかどうなってほしいかとか、いろいろ書いてきましたが、そもそもプログラミング言語って何なのか、英語とかの言語?、・・・みたいな勘違いがあると、教育という観点では間違いが起きそうなので、ここでちょっとだけ説明みたいなことを書いてみようかと。
英語は未来永劫英語ですけど、プログラミング言語はどんどん新しいものができて、使う価値がなくなると廃れます。
コンピューターはいろいろな機器に搭載されています。
例えば自動車、いったい何個のコンピューターが搭載されているのか私も詳しくはよくわからないのですが、少なくともフェールセーフなどのの観点から複数個搭載されているはず。
エアコンとか冷蔵庫とかの家電製品も当然搭載されていますね。
パソコンは1個だけですね。インテル、入ってる、ってやつです。
コンピューターは数字の羅列しか理解できません、しかも0か1かだけです。
じゃあなんでこんなに賢いの? というと、0か1かしか理解できなくてもそれがいっぱい並んでいれば、複数の判断ができますよね。
010000101010001111111111100010101・・・とかです。
プログラミング言語は、人間が理解しやすいため、効率よくコンピューターに命令を与えるために作られている言語です。
どんな言語でプログラムを書いても最後は数字の羅列になります。
私が会社に入った頃は、アセンブラ言語という低級言語しかありませんでしたが、その後C言語が登場し、画期的に人間がわかりやすいようになりました。
現代では、PythonとかRubyとか、超高級言語で実装できるようになりましたが、このプログラミング言語とコンピューターをつないでいるのがコンパイラという言語解釈ソフト(実際はコンパイラを作ることがプログラミング言語を作ることなんです)です。
コンパイラはプログラミング言語を解釈して、コンピューターが理解できるアセンブラ言語→マシン語に翻訳してくれます。
プログラミング言語を学ぶことは、プログラミング教育の本質ではないと以前書きましたが、プログラミング言語は今後もどんどん発展していきます、なぜなら”人間が理解しやすいように”作られるものなのですから。
だからこそ、本当はコンピューターがどのように動いているのかというところも是非学習してもらって、その上でプログラミング言語を駆使して、いろいろなアプリケーションを作ってほしいと思います。
(次回は時代を変えたC言語について)