読者です 読者をやめる 読者になる 読者になる

KOSEIのブログ

自分の可能性をどこまでも

コンピュータ学習/初歩<元SE独白記>

元SE独白記  2016/06/07

どの道にも「初歩」で学ぶべきことがあります。コンピュータ・プログラミングの世界での初歩のひとつは2進数でしょう。でもこれはなるべく早くプログラミングができるようにさせるスクールでは、時間がかかるので省略しているかも知れませんね。

2進数とは「0」と「1」だけの世界です。では何をもって「1」としているかというと、電圧です。コンピュータ内では「スレッショールド(閾-しきい-)レベル」という電圧値が設定されており、ある回路にこの値より高い電圧が流れれば「1」として、この値より低い電圧が流れれば「0」とします。この「高い電圧」と「低い電圧」の組み合わせがコンピュータが理解できる言葉なのです。

つまり人間は日常で10進数を使って生活していますが、コンピュータの世界には10進数という面倒なものは存在しないのです。すべては「1」と「0」で済ませてしまいます。実に簡単でいいですね、といいたいところなのですが、これはそのまま見ても何が書いてあるやらまったく人間にはわかりません。もちろん対応表を片手に解読はできます。

*ちなみに僕が現役のSEの頃はシステムエラーでプログラムが落ちた(停止した)場合は、コンピュータの中の記憶領域から膨大な量のリストを吐き出し(これをダンプリストといいます)て流れを追いかけていくのですが、そのリストはコンピュータ君が実際に見ていたものなので、すべて2進数です。厚さは5cmほどにもなる分厚いリストです(いやになります)。プログラムのどこの部分に問題があるのかを追いかけていくのですが、人一倍の根気と忍耐力と体力と知力が必要ですが、まあ大体は徹夜作業です。下手をすると徹夜でも終わりません。

さて「0」と「1」だけではわかりにくいので、人間がそれを見るときは2進数を10進数や16進数に変換して読みます。じつはダンプリストの解析も16進数に変換して進めていくのです。では2進数では数字や文字をどのようにして表わしているのか、ということですが、これを書き出すと長いので次の機会に書きます。

僕のコンピュータ学習歴ですが、僕は中学のころから「ワンボードマイコン」と呼ばれていたものを買って「機械語」と呼ばれるプログラミング言語を勉強していました。僕が持っていた「ワンボードマイコン」は日本電気NEC)のTK-80という機種でした。といってもこれが主流でしたね、あの頃は・・・。懐かしい限りです。TK-80画像↓

 

Wikipediaには「TK-80(Training Kit microCOM80)とは日本電気NEC)の半導体事業部が1976年8月3日に発売したマイクロコンピュータマイコンシステム開発のためのトレーニングキット」とありますから、まさにプログラミングのトレーニングにはピッタリだったわけです。またプログラミングだけでなく、コンピュータの基本的な構造もすべて見て学べるといった、優れモノでした。でも僕は好きで趣味半分で遊んでいたわけですが、将来プログラマーへの道を進む時に役立つとは、そのときは夢にも思わなかったものです。

それにしても、機械語のプログラミングをしたデータをこのTK-80にロードして右下にあるキーのたしか「RUN」と書いてあるキーだったと思いますが、そのキーを押すと、結果が右上のLEDに表示されるのです。最初はごく簡単な足し算プログラムを書いて実行しましたが、瞬時にして結果が表示されたときの、あのよろこび!快感!感動!今でもその感覚がありありと蘇ってきます!

ここで言っている「機械語」とは二進数の言葉より一歩人間に近づいた16進数で書かれたプログラミング言語です。今後時間を見て簡単にご紹介します。

KOSEI