0002_コンピュータの仕組み(コンピュータが文字を扱う方法).txt
皆さんこんにちは、プロクラスの野間です。
今回もコンピュータの根幹の話を続けていきたいと思います。
前回はコンピュータがどうやって大きな数を扱っているかのお話をしました。
今回は文字の扱いを紹介します。
■登場人物
先生
太郎
花子
■コンピュータが文字を扱う方法
花子:ワレワレハ、ウチュウジンダ
太郎:花子ちゃんって宇宙人だったの?
花子:典型的な文章かなって・・・
太郎:ええぇぇぇ・・・
先生:ずいぶん古いワードが聞こえてきたのですが・・・
太郎・花子:こんにちは!
先生:はい、こんにちは
花子:コンピュータってどうやって文字を扱っているのかなって思ったの
太郎:だからって話しかけても・・・
先生:そうですね、まずは文字の「扱い方」から見ていきましょうか。
花子:扱い方?
先生:はい、数字もそうですが、具体的な表示方法は別として、コンピュータが「あ」をどのようにして扱っているかって感じの話です。
太郎:また言葉遊び感が・・・
花子:まずは聞いてみましょうよ
太郎:うん、そうだね
先生:前回までで、コンピュータが数を理解する方法を説明しました
太郎:0と1だけで、後はドンドン桁を増やしているだけって事ですよね
花子:数値と数字の違いってのも重要な考え方だったわよね
先生:そうでしたね。それで文字なのですが、結論から話すとコンピュータは文字を理解していません。
太郎:それは数値と数字的な話ですか?
先生:いいえ、これに関しては微妙な認識の違いではなく、コンピュータには文字の概念すらないんです。ですので、文字を全く知らないんです。
花子:え?でも、文字を表示できてるわよね?
太郎:ワレワレハ、ウチュウジンダ?
花子:・・・
先生:そうですね、表示方法はまた別途やるとして、コンピュータは電気が通っているか、いないか、しか判別できないので、数が限界なんですよね。
太郎:???でも文字も扱っていますよね?
先生:はい、とても単純な考え方なのですが、文字に番号を割り当てているだけです
花子:文字に番号?
先生:はい、文字に番号です
花子:全部の文字に?
先生:はい、全部の文字にです
太郎:でも、文字って沢山ありますよ?
先生:はい、沢山ありますね
花子:ひらがなとカタカナだけじゃなく漢字も?
先生:はい、ひらがなとカタカナだけじゃなく漢字もです。
花子:漢字だけじゃ
太郎:もう良いんじゃない?(笑
先生:数値しか理解できない以上、コンピュータのすべては数値で表現されています。それは文字も例外ではありません。
花子:へ~
先生:そこで、文字を表現する方法として、文字全てに番号を割り当てて、?番が「A」として表示しています。
太郎:なるほど、数値と数字の時のように、数値によって表示する文字を変えるわけですね。
先生:その通りです。例えば、「A」は65、「B」は67、以降順番に68、69・・・と並べています。
花子:それならば覚えやすそうね
先生:ちなみに、小文字はまた別の番号です。
太郎:そうか!違う文字だからですね。
先生:はい、その通りです。ちなみに数字「0」の文字としての番号は48番です。
花子:0じゃないんだ・・・
先生:そうですね。番号の最初の方は特別な役割があるものが割り当てられていて、あくまで文字である数字はそこに割り当てられなかったのではないでしょうか。
花子:あれ?でも、そうなると、65を数値として扱うか、「A」として扱うかはどうやって判断しているのかしら?
太郎:確かに、65を数字として「65」と表示するか、文字として「A」と表示するかの判定方法が必要ですよね?
先生:そう思いますよね?ですが、残念ながら数値の「65」か、文字の「A」かを判定する方法はないんです。
太郎:え?でも・・・
先生:そもそも、コンピュータは数値しか認識できないので、文字自体を認識していません。
花子:文字を表示していますよね?
先生:実は、コンピュータは文字を表示しているつもりはないんです。・・・が、表示については別の機会にしましょう。
表示内容が変わるのは単純に画面に表示するときに「文字として表示して」と指示を出しています。
太郎:ん?・・・んん?
花子:コンピュータが自分で文字を判断していないって事ですか?
先生:はい。コンピュータが判断しているのではなく、使う側。例えば、メモ帳やメールソフトが「文字として表示して」と指示を出しています。
花子:なるほどぉ~
太郎:あれ?それで全部判断できる?大丈夫なんですか?
先生:はい。全て判断できます。そもそも、データをどのように扱うかは各アプリが決める事ですので、役割として必要十分なんです。
データが数値なのか文字なのかを判断する方法は各アプリが自分で考えて用意する事になります。
太郎:ああ、判断材料は別途自分で用意するって事ですか。
花子:なんだか大変そうね・・・
先生:そうでもないですよ?例えば、テキストエディタではテキストしか扱いませんので、数値は全て文字として表示すれば良いのですし。
太郎:あ・・・あ~~なるほど
花子:でも、テキストではないファイルを開いちゃったりしないの?
先生:ありえますが、それはまた別の話ですね。実際、皆さんは間違えて開いた経験って殆どないでしょう?
花子:用法容量を守って正しくお使いくださいってやつね!
太郎:う~~~ん?
先生:(笑)
花子:でも、コンピュータが文字を知らないのって大丈夫なのかしら?
太郎:プログラムとかって文字で入力しているんですよね?
先生:そうですね、確かに文字で書いていますが、コンピュータは文字を認識しているのではなく、数値『「65」だったらこうする』と指定されている変換を行っているだけなんです。
花子:むむむ・・・なる・・・ほど?
太郎:あくまで文字を認識しているのではなく、決められた数値を判定しているって事・・・ですかね?
先生:そうですね。なんとなく文字を扱っている私達からすると、文字を認識しないと問題がありそうな気がしますが、やってみると全く問題がないんですよねぇ・・・文字はあくまで記号なんです。
花子:日本語と英語?みたいな?
先生:はい。「花」でも「flower」でも記号を知っていれば説明できますよね?
花子:あ~記号と考えると、別に数値でも置き換えられるのね・・・
太郎:でも何か・・・問題が出そうな気が????
先生:恐らくなのですが、考え方が逆なのだと思います。
太郎:考え方が逆?
先生:はい。私たちは文字で伝える事を中心に考えており、「文字を使っているのにコンピュータが文字を判別できないのは問題じゃない?」と漠然とした考えからスタートしていると思います。
花子:う~~~ん・・・そうかも?
先生:でも、考えないといけないのは「コンピュータが文章で扱わないといけないものがあるか?」の、具体的な話で、メール等のように、人から人に伝えるための文字ならコンピュータは理解する必要ないですよね?
花子:・・・そうね、私が書いて、相手が読めれば良いだけで、コンピュータは何もしないわね・・・
先生:このように「どんなふうに使うか」で考えると、実はそれほど種類がないんです。ほとんどの場合が、文字は人に対して用意するものなので、コンピュータからすると理解する必要がないです。
太郎:でも、プログラムは理解する必要がありますよね?
先生:そうですね、でも、実はプログラムって文章ではないので、数字や記号だとわかりにくいので文字を使っているだけで、文字である必要はないんです。
花子:あれって英語じゃないの?
先生:違いますよ?英語っぽい何かを使っていますが、英語ではないんです。ですから、英語を話せる人でも、プログラムは学ばないと作れません。
太郎:そうか、英語ができる人が全てプログラムが組めるわけじゃないんですよね。
先生:はい。人が理解しやすいように英単語を使っていますが、別にAAAAとかでも良いんですよ。・・・AAAAだと何が書かれているかわからなくなるから誰もやらないですけど・・・
花子:AAAAでどうやって動きを指示しているのかしら・・・
先生:プログラム自体の話になるとズレていくので止めましょうか。
太郎:そうですね。
花子:あ!AIってやつは文章を理解しているじゃない!
先生:良い考え方ですが、あれも決してコンピュータ自体が文字を理解しているわけではないのです。先に話した通り、プログラムで文章(データ)を扱っているだけです。プログラムを組んで理解しているように動かしているだけでコンピュータからすると何をしているのかわかっていません。
花子:う~ん?
太郎:問題ない・・・のかな?
先生:色々と具体的に考えてみると、コンピュータが文字を理解しないと駄目なパターンがないことがわかってくると思います。
プログラムで処理するしかないんですよ。
文章は人が書いて人が読むもの、プログラムは文章ではなく記号の集まりなので理解する必要がない、AIはコンピュータではなくプログラムが処理している。
です。
太郎:なるほど・・・?
花子:なんだか意外ね・・・
先生:さて、今日はここまでとしましょうか。寒くなってきたので暖かくして帰ってくださいね。
太郎・花子:は~い、さようなら~
■まとめ
今回は文字の扱いでした
重要なのは
・コンピュータは文字を理解しない
・文字は1文字ずつ全てに数値が割り当てられている
でした
過去の重要点
・メモリは一列に並んでいて番号がついている。
・メモリは連続したものを使う
