メむンコンテンツぞスキップ
芋出し画像

0ず1は、どうやっお“考える力”になったのか

    『CODE コヌドから芋たコンピュヌタのからくり』の第10章ず第11章は、この本の䞭でもかなり重芁な山堎だず思った。

    ここで描かれるのは、単なる「電気回路の話」ではない。
    人間が考えおきた論理が、どうやっお物理的な回路になり、さらに蚈算機の郚品ぞず倉わっおいったのか、その決定的な瞬間である。

    第9章たでで、0ず1ずいうビットが、数だけでなく文字や状態や意味たで衚せるこずが芋えおきた。
    でも、それだけではただコンピュヌタにはならない。
    0ず1を衚せるこずず、0ず1を凊理できるこずは別の話だからだ。

    第10章ず第11章は、その「凊理」の原理を明かしおいく章だった。


    論理は、もずもず哲孊の蚀葉だった

    第10章は、いきなりアリストテレスの䞉段論法から始たる。

    • すべおの人間は死すべきである

    • ゜クラテスは人間である

    • ゆえに゜クラテスは死すべきである

    いた読むず圓たり前の掚論に芋えるけれど、ここで倧事なのは、昔の人たちがすでに
    「正しい前提から、どうやっお正しい結論を導くか」
    を考えおいたずいうこずだ。

    ぀たり、論理ずはもずもず哲孊の問題だった。

    コンピュヌタの本を読んでいお、叀代ギリシアの哲孊に戻るのが面癜い。
    でも実際、この遠回りが倧事なのだず思う。
    コンピュヌタは突然電子工孊から生たれたのではなく、もっずずっず前から人間が考えおきた「考えるずは䜕か」ずいう問いの延長線䞊にある。


    ゞョヌゞ・ブヌルがやったこずのすごさ

    この章で決定的に重芁なのが、ゞョヌゞ・ブヌルの登堎だ。

    ブヌルのすごさは、論理を数孊の圢で扱えるようにしたこずだった。

    普通の代数では、AやBは数を衚す。
    けれどブヌルは、それを数ではなく条件やクラスずしお扱った。

    たずえば、

    • F = 雌猫のクラス

    • M = 雄猫のクラス

    • W = 癜猫のクラス

    • B = 黒猫のクラス

    のように眮いお、

    • F × W = 雌であり癜である猫

    • B + W = 黒たたは癜の猫

    ず衚せるようにした。

    ここでの × は掛け算ではなく AND、

    • は足し算ではなく OR を意味しおいる。
      さらに 1 から匕く圢で NOT も衚せる。

    これは芋方を倉えるず、人間のあいたいな蚀葉を、機械が凊理できる圢に倉換する最初の䞀歩だったのだず思う。


    「真」ず「停」が、0ず1になる

    ブヌル代数の面癜さは、集合の話ずしおも読めるし、真停の話ずしおも読めるこずだ。

    • 1 = 真

    • 0 = 停

    ずしお扱うず、

    • AND は、䞡方が真のずきだけ真

    • OR は、どちらかが真なら真

    • NOT は、真停を反転する

    ずいう、いたではあたりに圓たり前に芋えるルヌルになる。

    でもここに、コンピュヌタの栞心がある。

    コンピュヌタは人間みたいに「意味」を理解しおいるわけではない。
    ただ、真か停か、0か1か、オンかオフかを凊理しおいる。
    その単玔な䞖界の積み重ねで、耇雑な刀断や蚈算を実珟しおいる。

    第10章を読んでいお匷く感じたのは、コンピュヌタの本質は「賢さ」ではなく、
    単玔なルヌルを壊れずに積み䞊げられるこず
    にあるのではないか、ずいうこずだった。


    猫の条件匏が、プログラムの原型に芋える

    第10章で印象的なのが、ペットショップで理想の猫を探す堎面だ。

    「雄で去勢しおあっお癜か耐色の猫」
    「あるいは雌で去勢しおあっお癜以倖の色の猫」
    「それがいなければ黒ならどの猫でもいい」

    ずいう、人間なら普通に話しおしたう条件が、ブヌル匏に盎される。

    (M×N×(W+T))+(F×N×(1−W))+B(M×N×(W+T))+(F×N×(1-W))+B(M×N×(W+T))+(F×N×(1−W))+B

    これを芋お思ったのは、これはもうほずんどif文だずいうこずだ。

    珟代のプログラミングで曞けば、

    • male AND neutered AND (white OR brown)

    • OR female AND neutered AND NOT white

    • OR black

    ずいう条件分岐になる。

    ぀たり、論理孊からブヌル代数を経お出おきたものは、
    遠い昔の抜象数孊ではなく、いた自分たちが毎日コヌドに曞いおいる条件匏そのものだった。

    そう考えるず、この章でやっおいるこずは、コンピュヌタ以前の話でありながら、同時にコンピュヌタそのものの話でもある。


    第10章の最倧の飛躍は、論理がスむッチになるこず

    この章のいちばん痺れるずころは、ここからだ。

    ANDやORが、単なる数孊蚘号ではなく、スむッチの぀なぎ方そのものずしお実珟できるずわかる。

    • スむッチを盎列に぀なぐ
      → 䞡方閉じないず電流が流れない
      → AND

    • スむッチを䞊列に぀なぐ
      → どちらか䞀方が閉じれば電流が流れる
      → OR

    この察応関係が芋えた瞬間、論理は玙の䞊の蚘号ではなくなる。
    物理䞖界の䞭で、手で觊れられる装眮になる。

    この感芚はすごい。
    「考える」ずいう抜象的な営みが、スむッチのオンオフに萜ちおくる。
    人間の掚論が、電流が流れるかどうかに翻蚳される。

    ここで初めお、コンピュヌタの土台が芋える。


    第11章で䞖界が倉わる

    回路は「郚品」になる

    第11章は、その発芋をさらに䞀段抌し進める章だった。

    第10章では、論理ずスむッチの察応を芋た。
    でも、毎回スむッチや配線を党郚考えおいたら耇雑すぎる。
    そこで第11章では、回路のたずたりをゲヌトずいう「郚品」ずしお扱うようになる。

    ここが倧きい。

    ぀たり、

    • ANDを実行する回路 → ANDゲヌト

    • ORを実行する回路 → ORゲヌト

    • 反転する回路 → むンバヌタ

    ずいうふうに、内郚の耇雑さを隠しお、入出力だけを持぀郚品ずしお扱えるようになる。

    これはハヌドりェアの話だけれど、゜フトりェアの感芚で読むずかなりしっくりくる。
    毎回䜎レベルの凊理をれロから曞くのではなく、関数やモゞュヌルずしおたずめるのに近い。

    耇雑なものを䜜れるようになるずき、人間は必ず抜象化する。
    第11章はたさに、その抜象化の瞬間だった。


    リレヌは「電気で動くスむッチ」だった

    第11章で䞻圹になるのはリレヌだ。

    リレヌは電磁石を䜿っお、別の接点を切り替える装眮。
    ぀たり、電気で操䜜できるスむッチである。

    これがなぜ重芁かずいうず、回路の出力を、次の回路の入力にできるからだ。

    手で抌すスむッチだけでは、人間が倖から操䜜するしかない。
    でもリレヌなら、

    • ある条件が成立する

    • その結果でリレヌが動く

    • 次の回路に電気を枡す

    ずいう連鎖が䜜れる。

    ぀たり、回路が回路を動かせる。
    ここで初めお、本圓の意味で自動化された論理凊理が可胜になる。

    コンピュヌタが人間の手䜜業ではなく、自分で次の凊理ぞ進んでいけるのは、この考え方があるからだ。


    ANDゲヌト、ORゲヌト、NOTは、機械の思考の最小単䜍

    第11章で敎理される基本郚品はずおもシンプルだ。

    • ANDゲヌト

    • ORゲヌト

    • むンバヌタNOT

    • さらに NAND、NOR、バッファ

    どれも入力は0か1、出力も0か1。
    やっおいるこずは極端に単玔だ。

    でも、その単玔さが倧事なのだず思う。

    人間は耇雑な問題をいきなり解こうずしおしたう。
    でもコンピュヌタは違う。
    「䞡方1か」「どちらか1か」「反察にするか」ずいう極小の刀断を、膚倧な数だけ組み合わせる。

    この本を読んでいるず、コンピュヌタのすごさは、䜕か高床な盎感を持っおいるこずではなく、
    単玔な郚品の組み合わせを、恐ろしく正確に積み䞊げられるこず
    にあるのだずよくわかる。


    デコヌダずいう発想が面癜い

    第11章で個人的にかなり面癜かったのが、2線-4線デコヌダの話だ。

    2ビットの入力から、

    • 癜

    • 黒

    • 耐色

    • その他

    の4぀のうち、1぀だけを遞び出す。

    これは「2ビットで4通り衚せる」ずいう情報理論の話ず、「そのうちどれかを物理的に立ち䞊げる」ずいう回路の話が぀ながるずころだ。

    ここでやっおいるのは結局、

    圧瞮された情報を、意味のある信号に展開する

    ずいうこずだず思う。

    埌のコンピュヌタでは、アドレス指定や呜什遞択でも同じようなこずが起こる。
    だからこの小さなデコヌダは、単なる猫の色分けではなく、コンピュヌタが䞖界をどう扱うかの雛圢になっおいるように芋えた。


    NANDずNORが瀺す、回路蚭蚈の矎しさ

    第11章の埌半では、NANDずNORが出おくる。

    • NAND = ANDの吊定

    • NOR = ORの吊定

    最初は「ANDずORがあるなら十分では」ず思う。
    でもここでドモルガンの法則が出おくるず、䞀気に芋え方が倉わる。

    反転の䜍眮を入力偎に぀けるか出力偎に぀けるかで、回路の圢を倉えられる。
    ぀たり、論理匏の倉圢がそのたた回路の倉圢になる。

    ここに矎しさがある。

    数孊の法則がそのたた物理蚭蚈の道具になる。
    玙の䞊の倉圢が、郚品点数の削枛や配線の単玔化に盎結する。
    シャノンが画期的だったのも、この「論理匏を簡玄すれば回路も簡玄できる」こずを明確に瀺したからなのだろう。


    第10章ず第11章を通しお芋えたこず

    この2章を続けお読むず、コンピュヌタの始たりがかなりはっきり芋えおくる。

    第10章では、

    論理が0ず1で衚せるこず
    その0ず1がスむッチ回路になるこず

    が瀺された。

    第11章では、

    その回路をゲヌトずいう郚品ずしお扱えるこず
    ゲヌトを組み合わせおより耇雑な装眮を䜜れるこず

    が瀺された。

    ぀たり、

    • 思考のルヌルがある

    • それを数孊で衚せる

    • 数孊を真停倀で衚せる

    • 真停倀を電気で衚せる

    • 電気回路を郚品化できる

    • 郚品を組み合わせお蚈算機が䜜れる

    ずいう䞀本の流れが芋えおくる。

    この぀ながりが芋えたずき、コンピュヌタは急に「ブラックボックス」ではなくなる。
    CPUもメモリもOSもアプリも、党郚このはるか䞋にある単玔な論理の延長線䞊にある。


    読んでいお感じたこず

    この2章を読んで匷く思ったのは、コンピュヌタは「難しいもの」ではなく、
    単玔なものを壊れずに぀なぎ続けた結果ずしお難しく芋えるもの
    なのだずいうこずだった。

    これは少し勇気づけられる話でもある。

    最初から耇雑さを理解できなくおもいい。
    ANDずORずNOTがわかれば、その先に進める。
    さらにゲヌトの組み合わせがわかれば、加算機にも進める。
    倧きな仕組みも、結局は理解可胜な小さな郚品の積み䞊げでできおいる。

    『CODE』の面癜さは、そういう「わからなさ」を、ひず぀ず぀地面に䞋ろしおくれるずころにあるず思う。


    たずめ

    第10章ず第11章は、コンピュヌタの歎史ずいうより、
    論理が機械になるたでの物語
    ずしお読むずすごく面癜い。

    アリストテレスの哲孊、ブヌルの代数、シャノンの敎理、スむッチ、リレヌ、ゲヌト。
    䞀芋ばらばらに芋えるものが、党郚「考える機械」を䜜るために぀ながっおいた。

    この2章を読むず、コンピュヌタは賢い機械ずいうより、たずは
    論理を物理に埋め蟌んだ装眮
    なのだずわかる。

    そしお、その最小単䜍は驚くほど玠朎だ。

    • 䞡方なら通す

    • どちらかなら通す

    • 逆にする

    たったそれだけのルヌルが、いずれ文章を曞き、画像を描き、䌚話たで生み出す䞖界に぀ながっおいく。
    その出発点をこれほど䞁寧に芋せおくれるのが、第10章ず第11章の魅力だった。

    この蚘事が参加しおいる募集

     
     
    システム゚ンゞニアずしお働いおいたす。 読曞蚘録を䞻に投皿しおいたす。

    あなたぞのおすすめ