1 Языки программирования, поддерживаемые GCC ¶
GCC означает «GNU Compiler Collection». GCC представляет собой интегрированное распределение компиляторов для нескольких основных языков программирования. В настоящее время к этим языкам относятся C, C++, Objective-C, Objective-C++, Fortran, Ada, D, Go и BRIG (HSAIL).
Аббревиатура GCC имеет несколько значений в общем использовании. Текущее официальное значение — «GNU Compiler Collection», обозначающее в общем весь набор инструментов. Исторически название означало «GNU C Compiler», и это использование до сих пор распространено, когда акцент делается на компиляции программ на языке C. Наконец, это название также используется при упоминании языконезависимой компоненты GCC: кода, используемого в компиляторах для всех поддерживаемых языков.
Языконезависимая компонента GCC включает в себя большинство оптимизаторов, а также «задние части», которые генерируют машинный код для различных процессоров.
Часть компилятора, специфичная для конкретного языка, называется «передней частью». Помимо передних частей, которые являются интегрированными компонентами GCC, существуют и другие отдельные передние части. Они поддерживают языки, такие как Mercury и COBOL. Для их использования они должны быть построены вместе с самим GCC.
Большинство компиляторов для языков, отличных от C, имеют свои собственные названия. Компилятор C++ — это G++, компилятор 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-10.5.0/gcc/G_002b_002b-and-GCC.html