Bignum 実装中 - Scheme VM を書く

Bignum を実装中。
実装は Gauche の実装のほぼそのままなのだけど、理解しながらゆっくり移植(or 最実装)していて大変勉強になる。
足し算、 引き算、比較などは想像通りの実現方法。


かけ算が面白い。
小学校で習った、筆算のかけ算のそのままなんですよ。
各桁同士のかけ算と足し算で実現している。
なので Bignum 同士のかけ算は、当り前だけど最後は通常の整数同士の *,+ に落とし込む。
あとは演算結果の正規化という考え方も、言われれば当り前だけど頭になかった。


いつもとは違う脳を使う感じがして、疲れるけど面白いな。
こんなことも知らなかったのかと落胆する一方、今ここで知れて良かったなと。
正直 Bignum の実装は面倒そうで嫌でしょうがなかったのだけど結果的には得られたものがとても大きい。
こういう原理や実装は情報系の学校に行けば、初歩の初歩としてやらされるのかもしれない。