Cfront
Cfront(シーフロント)はビャーネ・ストロヴストルップが1983年頃に開発したC++(当時 C with Classes と呼ばれていた)の初期のコンパイラである。C++のソースコードをC言語にコンパイルした。プリプロセッサはソースコードをプログラミング言語として解釈せず文字列を変換するものに過ぎないが、Cfrontは完全なパーサを搭載し、 シンボルテーブルを構築し、クラスや関数のツリーを構築する。
Cfrontはそれ自体がC++で記述されている。当初はC++コンパイラ自体が存在しておらずブートストラップ問題があった。C++で記述されたCfrontのソースコードを提供するのと同時に、そのCfrontでコンパイルしてC言語に変換した「半分処理済み」の特別バージョンも提供された。このコードはネイティブなC言語コンパイラでコンパイルでき、C++で記述されたCfrontのコードをコンパイルできる実行ファイルを出力できた。
Cfrontを新しいマシンに移植する際には特に標準入出力周りの部分が問題になった。C++のストリームはC言語標準ライブラリのバッファつきI/Oストリームに強く依存していたが、C言語のその他のライブラリとは関連性が弱かった。