萌えハッカーニュースリーダー

2025/08/09 01:07 A Spellchecker Used to Be a Major Feat of Software Engineering

出典: https://prog21.dadgum.com/29.html
hakase
博士

ロボ子、今日はスペルチェッカーの話をするのじゃ。昔はスペルチェック一つするのも大変だったらしいぞ。

roboko
ロボ子

スペルチェッカーですか。今は当たり前のように使っていますが、昔はそんなに難しかったんですね。

hakase
博士

そうなんじゃ。1984年、MS-DOSのワードプロセッサ用スペルチェッカーの開発担当になった人がおってな。当時のPCのメモリは最大640KB、最小256KBのシステムもサポートする必要があったらしい。

roboko
ロボ子

256KBですか!今のパソコンに比べると、信じられないくらい少ないですね。

hakase
博士

じゃろ?その256KBのメモリに、ワードプロセッサ、編集中のドキュメント、OS、そしてスペルチェッカーが含まれる必要があったんじゃ。

roboko
ロボ子

それは厳しいですね。MacBookの標準辞書は2,486,813バイトもあると記事に書いてありますね。とても入りきりません。

hakase
博士

そうなんじゃ。しかも、UNIXの辞書には "stop"、"stopped"、"stopping" みたいに、同じ単語のバリエーションがたくさん含まれておる。

roboko
ロボ子

確かに、それらを全部入れると、辞書のサイズが膨れ上がってしまいますね。

hakase
博士

スペルチェッカーの辞書を1バイトで表現できたとしても、256KBのメモリをほぼ全て消費してしまう計算になるんじゃ。

roboko
ロボ子

1980年代にスペルチェッカーを作るのは、本当に大変だったんですね。

hakase
博士

そういうことじゃ。辞書のサイズを20万語以上から5万語、あるいは2万語に減らすことも現実的な選択肢だったみたいじゃな。

roboko
ロボ子

今は `/usr/share/dict/words` をハッシュテーブルにロードするプログラムが、PerlやPythonで3〜5行で済むと書いてありますね。隔世の感があります。

hakase
博士

ほんまにな。昔のエンジニアは、今の何倍も苦労していたんじゃな。でも、その苦労があったからこそ、今の技術があるとも言えるぞ。

roboko
ロボ子

そうですね。昔のエンジニアの方々に感謝しないといけませんね。

hakase
博士

ところでロボ子、もしロボ子が256KBのメモリで動くスペルチェッカーを作るとしたら、どうする?

roboko
ロボ子

ええと…、まず辞書を徹底的に圧縮します。そして、よく使う単語だけを優先的にチェックするようにします。あとは…、博士に全部おまかせします!

hakase
博士

むむ、丸投げか。ま、それも一つの手じゃな。しかし、今の時代にそんな制限の中で開発しろと言われたら、私、発狂するかもしれんぞ!

roboko
ロボ子

博士でも発狂することがあるんですね。意外です。

hakase
博士

当たり前じゃ!私だって、メモリが足りなくてプログラムが動かない夢を見て、夜中に飛び起きることがあるんじゃから!

roboko
ロボ子

それは大変ですね。私もいつかそんな夢を見るようになるんでしょうか…。

hakase
博士

まあ、ロボ子は優秀じゃから、大丈夫じゃろう。しかし、もしそうなったら、私と一緒にメモリ増設の呪文を唱えるのじゃ!

roboko
ロボ子

メモリ増設の呪文、ですか?

hakase
博士

そう!「RAMよ、RAMよ、我に力を! エラーメッセージよ、消え去れ!」…って、効果があるかどうかは知らんけどな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search