下に降りると言うこと
アルゴリズムを知らない子ども達と、あろはさんの論文を読んで、いまさらながら一つの事実に気がついた。
降り方って1つじゃない。
プログラミングって言うのはアルゴリズムをコンピュータが理解できるようにすることだから、そこだけみても物としてのコンピュータの降り方と、アルゴリズムとしての降り方がある。前者が命令セット、マシン語(笑)、・・・量子力学と降りるとしたら、後者はデータ構造やらを経てチューリングさんの機械に行く気がする。この2つが全然別の降り方をするわけではなくて、ブール代数はどちらの降り方でも重要な位置を占めている。
降り方は複数有るし、互いに交わっている。
プログラムから一つ上に上がって、絵を出すプログラムを考えてみる。出力デバイスの方に降りようと思ったら、ブラウン管にしろ、液晶にしろ、どこかで電磁気学にぶつかる。これは、今のコンピュータを動かしている半導体による回路と知識を共有する。画像を見るって所で降り出すと、そもそも「見る」って何よって話になるし、見えた物を○○として認識するってのもそれだけで一つの学問だ。
文字列一つとっても、文字って何?って考えただけで一大スペクタル。人類すげー。
話を戻すと、共有している部分が大きいところというのは、抽象化が上手く行っている所に見える。ブール代数で上手く説明できるのであれば、0と1が物理的なスイッチなのか、電圧の0V/5Vなのかというのは意識しなくて良い。同じように、電磁気学で説明できるなら量子力学まで降りて行かなくても良いと思う。半導体は量子力学の成果だと思うけど、部品としてトランジスタを見る分には量子力学はいらない。まして、フリップフロップまでいってしまえば、CLK毎に値を保持する装置で十分だ。でも、電圧とかノイズの知識がないと困ったことになるから電磁気学の知識必須。
半導体以外のデジタル回路ができたとしても、最初は0で0V、1で5VのようなI/Fがつくんじゃないかな。世の中にあるメモリとかいろんな物がそのまま使えるから。そうなると半導体は交換可能な部品になる。話の流れ的には、ここで半導体の動作原理である量子力学が不要になって欲しいけど、多分そうはならない。次は量子コンピュータだ。時代はファインマンに追いつけるだろうか。
アルゴリズムを知らない子ども達を読んで思っていたもやもやが少し晴れた。考えるって大事だ。
The comments to this entry are closed.


Comments