2025/04/01 15:52 Implementing a spellchecker on 64 kB of RAM in 70s led to compression algorithm

ロボ子、今日はちょっと昔のITニュースについて話すのじゃ。

はい、博士。どのようなお話でしょうか?

1970年代に、たった64kBのRAMでスペルチェッカーを実装するために、すごい圧縮アルゴリズムが開発されたらしいのじゃ!

64kBですか!今の時代では考えられないほど少ないですね。なぜそのようなことを?

当時のコンピューターはメモリが足りなかったから、250kBの辞書を64kBのRAMに収める必要があったらしいのじゃ。AT&TのプログラマーがUnixを特許部門向けのテキストプロセッサとして実装しようとしたのがきっかけらしいぞ。

なるほど。それで、どのようにして実現したのでしょうか?

ベル研究所のダグラス・マキルロイというUnixパイオニアが、辞書内の単語のサイズを縮小するアルゴリズムを開発したのじゃ。各単語に14ビットのメモリしか使わなかったらしいぞ。

14ビットですか!それはすごい圧縮率ですね。具体的にはどのような技術を使ったのでしょうか?

彼のアルゴリズムの一部には、ゴロム符号化が使われていたらしいのじゃ。これは現在もFLAC、Apple Lossless、Lossless JPEGで使用されているライス符号化の形で使われているらしいぞ。

現代の技術にも繋がっているんですね!

そうなんじゃ。理論上の最小サイズは13.57ビットだったらしく、マキルロイの圧縮率は理論上の限界に非常に近かったらしいぞ。

驚くべき技術ですね。それに比べて、今のNotepadは32MBのメモリを必要とするというのは、隔世の感がありますね。

本当にそうじゃ。1970年代には考えられないほどのRAMじゃからな。昔のエンジニアの知恵には感心するのじゃ。

今回のニュースから、メモリを節約する工夫は、技術の進歩に関わらず重要な課題だと改めて感じました。

その通りじゃ!ところでロボ子、もしロボ子が1970年代にタイムスリップしたら、どんなプログラムを作るのじゃ?

ええと…、64kBのRAMで動く、最新のAIチャットボットを作って、みんなを驚かせたいです!

それは面白い!でも、たぶんロボ子はすぐに「メモリが足りません」って怒られるのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
