プログラムって何だろう?


パソコンやスマホ、電化製品には必ずと言っていいほど集積回路(IC)が入っており、ICはプログラムによって動作を決定します。

こんなことを書かれても「IC?プログラム?なにそれ?」こんな状態ですよね。

筆者は子供にプログラミングを教えることもありますが「機械に命令を出すための指示書を書く事」と、正しく説明しようとすると、どうしても複雑になってしまいます。

さて、ChatGPTにプログラムとは、プログラミングとはなにかについて、わかりやすく教えてもらいましょう。

プログラムは、コンピュータに「何をするか」を教えるお話のことです。コンピュータは、私たちがお願いしたことを理解できる言葉ではなく、特別な言葉を使います。プログラムは、その特別な言葉でコンピュータに伝えるための手紙やメモのようなものです。

プログラミングは、その手紙やメモを書く作業のことです。私たちは、自分の考えやアイデアをコンピュータに伝えるために、特別な言葉を使って手紙やメモを書きます。コンピュータは、私たちが書いた手紙やメモを読んで、その指示に従って行動します。

例えば、コンピュータに「こんにちは」と挨拶させたい場合、手紙を書いてコンピュータに渡します。手紙には、「コンピュータさん、こんにちはと言ってください。」と書かれています。コンピュータは、その手紙を読んで指示に従い、画面に「こんにちは」と表示するのです。

プログラムとプログラミングは、コンピュータにお願いするための手紙やメモを書くことです。プログラムは手紙やメモの内容で、プログラミングは手紙やメモを書く作業のことです。コンピュータは私たちの言葉がわからないので、特別な言葉を使ってお話するのです。

さすがChatGPT。一般的な物を、わかりやすく説明するのが得意ですね。

いやぁ、ほんとに、こんなものが数秒で出てくるのですから、物書きの立つ瀬がありません。とりあえず小学校低学年にも説明しやすいように、園児基準で解説してもらいましたが、小学校基準だとどうなるのか気になりませんか?気になりますよね?そう、気になるんですよ。

と言うことで、聞いてみましょう。

プログラムは、コンピュータに「何をするか」を教える指示書のようなものです。コンピュータは、私たちが話す言葉ではなく、特別なコンピュータ言語を理解します。プログラムは、その特別な言葉でコンピュータに指示を出すための書類です。

プログラミングは、その指示書を作る作業のことです。私たちは、自分の考えやアイデアをコンピュータに伝えるために、特別なコンピュータ言語で指示書を作ります。指示書には、具体的な手順や命令が書かれていて、コンピュータはその指示書を読んで、指示通りに動きます。

例えば、コンピュータに「こんにちは」と言わせたい場合、指示書を作ります。指示書には、「コンピュータさん、画面に「こんにちは」と表示してください。」と書かれています。コンピュータは、指示書を読んで、画面に「こんにちは」と表示するのです。

つまり、プログラムとは指示書であり、プログラミングとは指示書を作る作業のことです。私たちは特別な言葉を使って指示書を作り、それをコンピュータに渡すことで、コンピュータに自分の考えやアイデアを伝えるのです。

ほぼ変わりませんが、指示書という言葉が出てきましたね。まあ、そんなもんです。ただ、実際のところはコンピュータに限りません。ひとまずICについて聞いて、ICを踏まえたプログラムの説明をしてもらいましょう。

IC(集積回路)は、小さな電子パーツがぎゅっと詰まった特別なものです。例えば、おもちゃのパズルのピースを思い浮かべてみてください。それぞれのピースが電子パーツで、ICはたくさんのピースが一つのチップになっているんです。

ICは、たくさんのパーツが一緒になっているので、すごい力を持っています。コンピュータや携帯電話など、いろいろな電子機器に使われています。ICのおかげで、電子機器は小さくて便利になりました。

ICが使われている機器は、とてもすごいことができます。例えば、おもちゃのロボットが歩いたり話したりするのは、ICがその指示を与えているからです。また、スマートフォンやタブレットでゲームをしたり、写真を撮ったりするのもICのおかげです。

ICは小さいけれど、とても重要な存在なんです。たくさんのパーツが一つになって、電子機器を動かしているのです。だから、ICはとてもすごいものなんですよ。

ふむふむ、ま、まあ、及第点でしょうな。幼稚園児でもわかるような説明、という条件なので、こんなもんです。(書く時間を考えると完敗である)

ICを踏まえた説明をさせてみましょう。

IC(集積回路)は、コンピュータや電子機器の中で大切なパーツです。ICは、たくさんの小さな部品が一つになっていて、コンピュータがきちんと動くために必要なものです。

プログラムは、ICに指示を伝えるための特別なお話のようなものです。プログラムは、コンピュータが理解できる特別な言葉で書かれた指示書のようなものです。その指示書には、コンピュータに何をしてほしいかが書かれています。

プログラミングは、その指示書を作る作業のことです。プログラミングでは、特別な言葉を使って指示書を作ります。例えば、「ロボットに前に進んでほしい」と書いたら、ロボットは前に進むようになります。

ICは、プログラムが書かれた指示書を読んで、それに従って動きます。プログラムがなければ、ICはどう動くかわからないのです。

だから、ICはコンピュータの中で大切なパーツであり、プログラムはICに指示を与えるための特別なお話のようなものなんです。コンピュータがきちんと動くためには、ICとプログラムの両方が必要なのです。

ICの重要性が説かれていなかったので、無理やり組み込ませましたが、なんと言うか、微妙ですね。

どうせなら擬人化して、ICには小人がいっぱい詰まってて、プログラムを動かしてくれるんだよ。みたいな感じを期待しましたが、ICの説明だけを追加させても微妙ですね。

簡単に言うと、

ICとは、電気を使って働いてくれる小人さんがいっぱい詰まった小さな箱です。ただ、小人さんに働いてもらうには、小人さんが分かるような話し方をする必要があります。アメリカの人とお話しする時には、英語を使いますよね?

小人さんにお願いするための言葉を「プログラミング言語」と言い、お願いする手紙をプログラム、手紙を書くことをプログラミングって言います。

みたいな感じで良いと思います。

ICの実物があると、より分かりやすいですね。

一応、ICの画像を張っておきます。(PICと呼ばれるワンチップマイコンで、これだけでプログラムを動かせます)

ちなみに、より詳細を求められた場合に備えて、機械語とかの説明も乗せておきます。子供は何を聞いてくるかわかりませんからね。

小人さんが直接わかる文字は0と1だけで、機械言語と言います。

これを見ても何かわかりませんよね?でも、小人さんはこんな感じでお願いしないと、働いてくれません。

(今でもCPUの中身は、こんなのがずらっと動いているだけです。実際は、改行なんてものはありませんから、ずらっと並んでいるだけですが、書くのが大変すぎるので、勘弁してください。)

そこで登場したのが、アセンブリ言語と呼ばれる言葉です。アセンブリ言語の文字は0~9に加えて10~15までをA~Fで変換することで、なんと0000~1111の4桁を0~Fと1桁で表せちゃいます。

これの赤枠で覆われた部分が、アセンブリ言語のプログラムです。短くなったでしょ?

ただ、これでも書きづらい!そして、書くのがめんどくさい!

そこで登場したのが、英語を元にしたプログラミング言語です。事前に翻訳方法を教えておくことで、私たちの分かりやすい言葉で書くと、小人さんに伝わる言葉に直してくれます。

これがプログラミング言語として初めの方で作られ、今でも使われているC言語で書いたプログラムです。

すごく見やすく、わかりやすくなったでしょ?

これをより見やすく楽しくできるように作られたのが、授業とかで使ってるスクラッチであったり、viscuitとかになるわけです。

かなり脱線した気もしますが、つまりは電気で動いてくれる箱に「どう動いてほしいか書いた紙がプログラム」「動きを書くことがプログラミング」になります。

基礎中の基礎を間違えて覚えると、なんで出来ないの?となった際の原因究明が困難になります。反対に基礎や構造を知っていると、出来ない理由を見つける手掛かりが大幅に増えます。何事も基礎は重要なので、教えるなら、ちゃんと教えたいですね。


“プログラムって何だろう?” への2件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です