Embedded
C++(E
C++)は、組み込みシステムでの利用を目的として、
C++の機能を必要最低限に絞り込んだサブセットとして開発された
プログラミング言語です。
1990年代後半に、
C++の肥大化を背景に、より軽量で効率的なコードを生成するために考案されました。
Embedded C++の特徴
Embedded
C++は、
C++と比較してプログラムサイズを小さくできる傾向があります。これは、主に以下の機能が削減されていることによります。
例外処理
実行時型情報(RTTI)
多重継承
名前空間
ワイド文字ライブラリ
新しい
型変換演算子(`const_cast`, `dynamic_cast`, `reinterpret_cast`, `static_cast`)
`mutable` キーワード
これらの機能は、組み込みシステムでは必ずしも必要とされず、オーバーヘッドの原因となるため、削除されました。
Embedded
C++は
C++のサブセットという位置づけであり、Embedded
C++で記述されたコードが
C++でもそのまま利用できることが理想とされました。しかし、実際には完全な互換性は達成されていません。その要因として、以下の点が挙げられます。
1.
名前空間の非サポート: Embedded
C++では
名前空間がサポートされないため、
C++との間でシンタックスが統一できません。例えば、`size_t`型を使用する場合、
C++では`std::size_t`と記述する必要がありますが、Embedded
C++では単に`size_t`と記述します。この違いは、コードの可読性や移植性を損なう可能性があります。
2.
例外処理の非サポート: Embedded
C++は例外処理をサポートしないため、Embedded
C++で記述されたプログラムは例外安全性を考慮した設計になっていません。
C++では例外処理がプログラムの堅牢性を高めるために重要ですが、Embedded
C++ではその恩恵を受けられません。
3.
フリースタンディング環境: 組み込み用途を想定しているため、Embedded
C++は
フリースタンディング環境を対象としています。しかし、Embedded
C++には
C++の
フリースタンディング環境ではサポートされないライブラリ機能が含まれているため、環境によっては互換性の問題が生じる可能性があります。
まとめ
Embedded
C++は、組み込みシステム向けの
C++として、より軽量で効率的なコードを生成するために開発された言語です。
C++の機能を削減することで、組み込み環境でのリソース消費を抑えることを目指しています。しかし、
C++との完全な互換性はなく、いくつかの注意点があります。
それでも、Embedded
C++は、組み込み開発において、
C++の
オブジェクト指向プログラミングの利点を活用しつつ、効率的なコードを記述するための強力なツールとして、広く利用されています。
外部リンク
Embedded C++ Homepage