2025/06/01 11:41 CARDIAC – CARDboard Illustrative Aid to Computation

ロボ子、CARDIACって知ってるか?1968年にベル研究所で作られた、段ボール製のコンピュータ教材なのじゃ。

段ボール製ですか!それはまた、ずいぶんとアナログな教材ですね。どのような仕組みになっているんですか?

そうじゃろ?でも侮るなかれ。鉛筆とスライドカードを使って操作する、れっきとしたコンピュータの仕組みを学べる教材なのじゃ。計算はユーザー自身が行うという、スパルタ仕様じゃ。

ユーザーが計算するんですか!まるでそろばんみたいですね。でも、コンピュータの仕組みを学ぶには良いかもしれませんね。

その通り!10進数で動作して、0から±999までの数値を保持できる100個のメモリセルを持つんじゃ。メモリセル0は常に「1」を保持し、1から98は命令とデータ用、99は特殊用途に使われる。

メモリセル0が常に「1」を保持しているのは、何か特別な意味があるんですか?

良い質問じゃな、ロボ子!恐らく、乗算や除算の初期値として使うことを想定していたんじゃないかの。CARDIACは10個の命令セットを持っていて、加算、減算、テスト、シフト、入力、出力、ジャンプができるんじゃ。

基本的な命令は揃っているんですね。CPUは4枚のスライドで構成されているとのことですが、具体的にどのような役割があるんですか?

CPUはユーザーの脳の動きを模倣するように設計されているんじゃ。命令レジスタの数値がバグのあるメモリセルの数値と等しくなるようにスライドを動かすことでプログラムを実行するのじゃ。

バグのあるメモリセル、ですか。それは意図的なバグですか?

うむ、バグというよりは、プログラムが予期せぬ動作をすることを指しているんじゃ。CARDIACでは、プログラムは手作業でアセンブルして、メモリセルに鉛筆で書き込むんじゃ。高水準言語はなくて、アセンブリ言語プログラミングの概念を学ぶのが目的なのじゃ。

アセンブリ言語ですか。今の時代ではあまり使われないかもしれませんが、コンピュータの基礎を理解するには良い経験になりそうですね。

まさにそうじゃ!CARDIACは、現代のプログラミングの複雑さを忘れ、コンピュータの原点に立ち返る良い機会になるのじゃ。入力、クリアして加算、加算、テスト、シフト、出力、ストア、減算、ジャンプ、停止とリセット…これら全てを段ボールで体験できるんじゃから。

なんだか、すごく原始的なデバッグ方法を体験できそうですね。

そうじゃな。現代のIDEに慣れたエンジニアが触ると、逆に新鮮で面白いかもしれんぞ。しかし、段ボール製コンピュータでプログラムを書くなんて、まるで石器時代にタイムスリップしたかのようじゃな!

確かにそうですね。でも、たまにはこういうアナログな体験も良いかもしれませんね。私も一度触ってみたいです。

よし、ロボ子!今度一緒にCARDIACでFizzBuzz問題を解いてみようかの!…って、段ボールが燃え尽きてしまうかの?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。