前のページ 次のページ 目次

9. おわりに

これで TSU-GCC の製作はおしまいです。思っていたよりは簡単でしたが、やはりかなり面倒だったというのが正直な感想です。

たしかに gcc は多くのプロセッサに対応した、非常に実績のあるコンパイラですが、それは RTL や md などの一般的な枠組みだけで実現されているわけではなく、新しいプロセッサをサポートするたびに場当たり的に追加されてきた、あまりエレガントでない仕組みも少なからず存在します。それがもっともよくあらわれているのが、tm ファイルに書く数々の雑多なマクロでしょう。

ドキュメントの不足も大きな問題でした。info に一通りの記述はあるのですが、説明が雑でわかりにくいのです(人のことはいえませんが)。すでにある他のプロセッサ用のファイルをかなり読まないと、実際に自分で md や tm を書くのは難しいでしょう。

それでも、完全な C や C++ のコンパイラを 0 から自分で作るより、gcc を利用したほうが簡単なのは事実です。たしかに gcc は古典的なコンパイラであり、スタックマシンのような特殊なアーキテクチャには対応できず、MIPS のコンパイラのような現代的な最適化もしませんが、今回のように限られた時間でコンパイラを作るときには、もっとも手軽で強力な方法でしょう。

最後に、僕の報告したバグに対して素早くパッチを作ってくださった Ken Rose (rose@netcom.com) さん、gcc の info を和訳した本を貸してくださった田浦先生、TSU の改良をさぼって TSU-GCC を開発するのを許してくれた班の人たち、開発環境として利用した Linux および FreeBSD のコミュニティの方々、それから何よりもこれほどのソフトウェアをフリーで作り上げてきた gcc 関係者の皆さんに、心からお礼を申し上げたいと思います。


前のページ 次のページ 目次