えぴすてーめー
C++言語のカラクリ
誕生の秘密と舞台裏
ガイド
書誌
author | えぴすてーめー |
publisher | ソフトバンククリエイティブ |
year | 2008 |
price | 2000+tax |
isbn | 978-4-7973-4436-3 |
履歴
editor | 唯野 |
2011.6.12 | 読了 |
2011.6.27 | 公開 |
2012.1.17 | タグ追加 |
書名の通りであるが初期の C++ コンパイラの実装についてを説明するのが前半で、後は識者による座談会になっている。仮想関数テーブルの辺りなどは私も知っていたことだったので特別の目新しさはなかったが、初期のテンプレートを実装するマクロの話は初めて知っておもしろかった。
私は現在プログラミング言語として C++ と Perl を専ら使っているが、なぜ C++ なのかといえば、それは本書の中でも触れられている通り「C++ は網羅的にいろんなことができちゃう力強さがありますよね。C++ をベースにさえしておけば、という安心感かな。」(ひろえむ、p161)というところに結局は落ち着くのだと思う。C++ さえ分かっていれば Java でも C# でも困らない。なぜなら、これらの言語自体が C++ を使いやすくするということを経緯として生まれてきた部分があるからである。
いずれにせよ C++ 使いであれば読んで損はない一冊だと思う。
抄録
7
そこで、BjarneがC++コンパイラを作る際の前提に考えたのが、新しい言語を作って、それをC言語に変換するということでした。それさえできてしまえば、あとはそのマシン用のC言語のコンパイラとリンカに任せられます。
14-19
そのために Bjarne はまず以下のものを作った。
C による C++ のインタプリタ
↓
C++ から C に変換するトランスレータ (cfront)
↓
C++ のトランスレータに自分自身を入力として与える(自分自身を食わせる)
22
ではなぜ、はじめから C++ を C に変換する C プログラムを作らなかったのかというと、
-/-種を明かせば、「cfront が本当に正しいコードを生成するのかを検証したい」「これが本当にコンパイラとして動くかどうかを確認したい」という欲求、必要性を満たすためなのです。