1.2 GNU Fortran и GCC
GNU Fortran является частью GCC, коллекции компиляторов GNU. GCC состоит из набора фронтендов для различных языков, которые переводят исходный код в язык-независимую форму, называемую GENERIC. Затем это обрабатывается общим средним слоем, который обеспечивает оптимизацию, и передаётся одному из набора бэкэндов, которые генерируют код для различных архитектур компьютеров и операционных систем.
Функционально это реализуется с помощью программы-драйвера (gcc) которая предоставляет командную строку интерфейс для компилятора. Она вызывает соответствующую программу фронтенда компилятора (например, f951 для Fortran) для каждого файла в исходном коде, а затем вызывает ассемблер и компоновщик, как требуется, для получения скомпилированного результата. В копии GCC, скомпилированной с поддержкой языка Fortran, gcc будет распознавать файлы с расширениями .f, .for, .ftn, .f90, .f95, .f03 и .f08 как исходный код Fortran и компилировать его соответствующим образом. Также предоставляется программа-драйвер gfortran, которая идентична gcc, за исключением того, что она автоматически подключает библиотеки времени выполнения Fortran к скомпилированной программе.
Исходные файлы с расширениями .f, .for, .fpp, .ftn, .F, .FOR, .FPP, и .FTN обрабатываются как фиксированной формы. Исходные файлы с расширениями .f90, .f95, .f03, .f08, .F90, .F95, .F03 и .F08 обрабатываются как свободной формы. Заглавные версии любой формы проходят предварительную обработку. Исходные файлы с расширением .fpp также проходят предварительную обработку.
В данном руководстве подробно описывается фронтенд для Fortran, который обрабатывает синтаксис и семантику языка программирования. Аспекты GCC, относящиеся к оптимизирующим проходам и генерации кода бэкенда, описаны в руководстве GCC; см. Введение. Эти два руководства вместе предоставляют полную справочную информацию по компилятору GNU Fortran.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gfortran/GNU-Fortran-and-GCC.html