Несколько компиляторов C ++ (оригинальный cfront, Comeau C ++) используют C в качестве промежуточного языка во время компиляции. Большинство компиляторов C ++ используют другие промежуточные языки (например, llvm).
Редактировать: Поскольку, похоже, существует некоторое недопонимание в истории: "C с классами" начинался с использования препроцессора "Cpre". В то время это рассматривалось строго как диалект языка С, а не как отдельный язык сам по себе. В декабре 1983 года люди начали рассматривать его как отдельный язык, и было изобретено имя C ++. Как оказалось, разработка cfront началась в апреле 1983 года, поэтому доступная для использования версия стала доступной (для немногих избранных) примерно в то же время, когда появилось название «C ++». Похоже, это в основном совпадение, а не план.
Что касается выдачи C в качестве выходных данных, это было довольно распространенным явлением в Unix. Например, компилятор Berkeley Pascal и, по крайней мере, пара компиляторов Fortran также выдали C в качестве выходных данных.
Однако есть огромная разница между Cpre и Cfront. Хотя оба выпускали C в качестве выходных данных, Cpre практически не проверял синтаксис самостоятельно - он искал несколько конкретных вещей и выполнял относительно механический перевод для них. Только когда компилятор C посмотрел на результат, был проведен настоящий синтаксический анализ. Если ваш код содержал синтаксическую ошибку, он был почти уверен, что она не будет перехвачена, пока компилятор C не проанализирует вывод Cpre.
Cfront, однако, выполнил полный синтаксический анализ самого исходного кода, поэтому (если не считать ошибки в его генераторе кода), вы никогда не увидите синтаксическую ошибку от компилятора C. Компилятор C просто использовался в качестве генератора кода, поэтому никому не нужно было переписывать CFront для поддержки различных процессоров, форматов объектных файлов и т. Д.
Если вы хотите получить более подробную информацию, глава 2 Проектирование и развитие C ++ почти целиком посвящена временному интервалу "C with Classes" (и есть другие подробности о его распространении). на протяжении всей книги).