Cfront

редактировать

Cfront был исходным компилятор для C ++ (тогда известный как «C с классами») примерно с 1983 года, который преобразовал C ++ в C; разработан Бьярном Страуструпом в ATT Bell Labs. Препроцессор не понимал весь язык, и большая часть кода была написана с помощью переводов. Cfront имел полный парсер , построил таблицы символов и построил дерево для каждого class, function, и т.д. Cfront был основан на CPre, компиляторе C, запущенном в 1979 году.

Поскольку Cfront был написан на C ++, возникла проблема начальной загрузки на машине без компилятора / транслятора C ++. Наряду с исходными текстами Cfront C ++ была также предоставлена ​​специальная «полуобработанная» версия кода C, полученная в результате компиляции Cfront с самим собой. Этот код C должен был быть скомпилирован с помощью собственного компилятора C, и полученный исполняемый файл затем можно было использовать для компиляции исходных текстов Cfront C ++.

Большая часть усилий по портированию для запуска Cfront на новой машине была связана со стандартным вводом-выводом. Потоки Cfront C ++ были тесно связаны с буферизованными потоками ввода-вывода библиотеки C, но практически не взаимодействовали с остальной средой C. Компилятор мог быть перенесен на большинство производных от System V без особых изменений, но системы на основе BSD обычно имели гораздо больше вариаций в своих библиотеках C и связанных с ними структурах stdio.

Cfront определял язык примерно до 1990 года, и многие из наиболее неясных угловых случаев в C ++ были связаны с его подходом к преобразованию C ++ в C. Некоторые остатки метода трансляции Cfront все еще встречаются в сегодняшних компиляторах C ++; изменение имени было создано Cfront, поскольку относительно примитивные компоновщики в то время не поддерживали информацию о типе в символах, а некоторые модели создания экземпляров шаблонов являются производными от ранних усилий Cfront. C ++ (и Cfront) был непосредственно ответственен за многие улучшения в линкерах Unix и объектных файлах форматов, поскольку это был первый широко используемый язык, который требовал времени компоновки проверка типов, слабые символы и другие подобные функции.

Cfront 4.0 был прекращен в 1993 году после неудачной попытки добавить поддержку исключения. Язык C ++ перерос свои возможности; однако компилятор с аналогичным подходом стал доступен позже, а именно Comeau C / C ++.

Ссылки

Примечания

Внешние ссылки

.

Последняя правка сделана 2021-05-14 04:06:22
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте