3月1日、海外のテクノロジーメディアInfoWorldが「TrapC proposal to fix C/C++ memory safety」と題した記事を公開した。
この記事では、TrapCが提案するC/C++のメモリ安全性向上に関する取り組みについて詳しく紹介されている。以下に、その内容を紹介する。
TrapCとは、C言語の拡張コンパイラであり、最も重要な特徴はメモリ安全であることだ。TrapCのメモリ管理は自動化されており、メモリリークが発生しない設計だとされる。ポインタはガーベジコレクションではなく、オブジェクトのライフタイムを管理する仕組みを採用している。
言語としては、C言語をベースとしたいくつかの拡張が行われている。従来のCのキーワードであるgoto
とunion
を削除し、新たにtrap
とalias
を追加した。さらに、C++のコード安全機能をいくつか再利用しており、メンバ関数やコンストラクタ、デストラクタ、new
キーワードなども取り入れている。加えて、CやC++にはない新機能も追加しているが、Cと同じ数のキーワード数を維持しているため、最小限の言語拡張でありながらC++コードとの高い互換性があるという。
TrapC は、C がメモリ安全であること、そして C++ に少し似ていること、ただし C++ のように学習が大変ではないことを望んでいると考えてほしい
と開発者の Robin Rowe 氏は語る。
このTrapCは、ISO Cの会合でRowe氏によって発表された。開発者向けにはTrapCのホワイトペーパーが公開されており、フィードバックも募集している。
C/C++のメモリ安全性を向上させる試みはほかにも存在する。たとえばC++ Partnershipが取り組んだSafe C++ Extensionsの事例が挙げられる。しかしRowe氏は、TrapCの提案こそが包括的なメモリ安全性を実現するとしている。
詳細は[TrapC proposal to fix C/C++ memory safety」を参照していただきたい。