Interested Article - Cfront
![](/images/009/071/9071285/1.jpg?rand=103002)
![](https://cdn.wafarin.com/avatars/7ff237343e368c07c68f0e66930265a3.png)
- 2021-09-06
- 1
Cfront — ранний компилятор C++, называвшегося тогда «Си с классами», конвертировавший C++ в Си . Разработан Бьёрном Страуструпом в AT&T Bell Labs примерно в 1983 году . Он не понимал всех деталей языка, большая часть реализовывалась при помощи обычного перевода. Cfront включал в себя синтаксический анализатор, построитель таблиц символов и деревьев классов, функций и другого. Cfront был основан на , компиляторе Си 1979 года .
Поскольку он был написан на раннем C++, было проблематично запустить его без соответствующего компилятора. Наряду с кодом Cfront на C++ была версия на полуобработанном Си, сгенерированном самим собой. Этот Си-код можно было скомпилировать, а затем использовать для запуска версии Cfront на C++.
Большая часть усилий по переносу для запуска Cfront на новую машину была связана со стандартным вводом-выводом. Потоки Cfront C++ были тесно связаны с буферизованными потоками ввода-вывода библиотеки C, но мало взаимодействовали с остальной средой C. Компилятор мог быть перенесён на большинство производных System V без особых изменений, но системы на основе BSD обычно имели гораздо больше вариаций в своих библиотеках C и связанных с ними структурах stdio.
Cfront определял язык примерно до 1990 года , многие признаки языка были связаны с трансляцией C++ в Си. Некоторые из них всё ещё остаются в современных компиляторах: искажение имён ( ) пришло из Cfront: примитивные линковщики того времени не поддерживали информацию о типах в символах, а некоторые модели создания экземпляров шаблонов являются производными от ранних усилий Cfront.
Cfront 4.0 был заброшен после провалившейся попытки добавить поддержку исключений . C++ вырос за свои границы. Компилятор с аналогичным подходом появился позже, он назывался .
Примечания
- Скотт Майерс , от 28 апреля 2011 на Wayback Machine , 2006
Ссылки
- Бьёрн Страуструп. . 20 ноября 2007 года.
- Бьёрн Страуструп. .
- Бьёрн Страуструп. .
![](https://cdn.wafarin.com/avatars/7ff237343e368c07c68f0e66930265a3.png)
- 2021-09-06
- 1