2005-07-24
Cでは、基本言語仕様を実現する上で特別なランタイムが必要になることはありませんでした。
*1ところが、C++では基本言語仕様とライブラリの境界がCほど鮮明ではなく、言語に組み込まれた機能を使う場合でさえ、いくつかのクラスや関数が必要になることがあります。
ランタイムが必要になるのは、ごく大雑把にいうと、次の機能を使う場合です。
- プログラムの起動と終了
- 動的メモリ管理
- 例外処理
- 実行時型識別
PC等の環境では、こうしたランタイムは開発ツールが用意してくれているものを使うだけで済みますが、組み込み環境の場合は、Cでもスタートアップ等を自分で用意しないといけなかったように、C++特有のランタイムも自分で何とかしないといけない場合があります。
次回からは、これら4種類のランタイムについて、順を追って見ていきたいと思います。
*1 処理系によっては、乗除算、浮動小数点演算、ブロック転送等のランタイムルーチンが使われることがありますが、これはプロセッサにない機能を補ったり、効率を向上させるためのものであり、本質的ではありません。
Comment