最も単純なコンピュータ
63
3
章
最も単純なコンピュータ
あっという間に、私たちの身の回りはコンピュータでいっぱいになりました。かつては軍の研究所や
大学の研究室で安全に隔離されていたものが、今や至るところにころがっています。デスクの上やポ
ケットの中、車の中や、さらには体内に埋め込まれるものまで。私たちプログラマは最新のコンピュー
ティングデバイスを使って仕事をしていますが、一体どのように動いているのか、どれくらい理解して
いるでしょうか。
最近のコンピュータは非常に複雑です。コンピュータは多数のサブシステムから構成されており、そ
れぞれのサブシステムの詳細をすべて理解するのは困難です。サブシステムがどのように相互作用し
てシステム全体を構築しているのか、それを理解するのはさらに困難です。そう考えると、実際のコン
ピュータの機能や振る舞いを直接検証するのは、非現実的だと言えるでしょう。実際の機械が持つ興
味深い機能を備えながら、私たちが全体を理解できるくらいにコンピュータを単純化したモデルがあ
ると助かります。
この章では、計算する機械というアイデアにある本質を明らかにし、それがどんな用途に使えるの
か紹介しながら、単純なコンピュータにできることの制限について調べます。
3.1
決定性有限オートマトン
実際のコンピュータは通常、大量の揮発性メモリ(RAM)と不揮発性ストレージ(ハードディスクや
SSD)、さまざまな入出力デバイス、複数の命令を同時実行できる複数のプロセッサコアを備えていま
す。有限状態機械(fi ...