1 Языки программирования, поддерживаемые GCC
GCC расшифровывается как «GNU Compiler Collection» (коллекция компиляторов GNU). GCC — это интегрированный дистрибутив компиляторов для нескольких основных языков программирования. В настоящее время к ним относятся C, C++, Objective-C, Objective-C++, Fortran, Ada, D и Go.
Аббревиатура GCC имеет несколько распространённых значений. В настоящее время её официальная расшифровка — «GNU Compiler Collection», то есть общий термин для полного набора инструментов. Исторически название означало «GNU C Compiler», и такое употребление по-прежнему распространено, когда речь идёт о компиляции программ на C. Наконец, это название также используют, говоря о независимом от языка компоненте GCC: коде, общем для компиляторов всех поддерживаемых языков.
Независимый от языка компонент GCC включает большую часть оптимизаторов, а также «бэкенды», которые генерируют машинный код для различных процессоров.
Часть компилятора, специфичная для определённого языка, называется «фронтендом». Помимо фронтендов, входящих в состав GCC, существует несколько других фронтендов, которые сопровождаются отдельно. Они поддерживают такие языки, как Mercury. Чтобы использовать их, необходимо собирать их вместе с собственно GCC.
Большинство компиляторов для языков, отличных от C, имеют собственные названия. Компилятор C++ называется G++, компилятор COBOL — gcobol, компилятор Ada — GNAT и так далее. Когда мы говорим о компиляции на одном из этих языков, мы можем называть соответствующий компилятор его собственным именем или GCC. Оба варианта правильны.
Исторически компиляторы для многих языков, включая C++ и Fortran, реализовывались как «препроцессоры», преобразующие исходный код в другой язык высокого уровня, например C. Ни один из компиляторов, входящих в GCC, не реализован таким образом: все они непосредственно генерируют машинный код. Такой препроцессор не следует путать с препроцессором C, который является неотъемлемой частью языков C, C++, Objective-C и Objective-C++.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/G_002b_002b-and-GCC.html