GCC (GNU Compiler Collection)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:24, 4 апреля 2019.
Версия от 16:24, 4 апреля 2019; a.asatryan (обсуждение | вклад) (История)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
GNU Compiler Collection
GNU Compiler Collection logo.svg
Gcc-4.1.1.png
управление GCC в командной строке
Разработчики: GNU Project
Выпущена: 23 May 1987 года; 35 years ago (1987-05-23)
Постоянный выпуск: 6.2 / 22 августа 2016[1]
Состояние разработки: активное
Написана на: C/C++
Операционная система: Cross-platform
Платформа: GNU
Тип ПО: Компилятор
Лицензия: GNU GPL
Веб-сайт gcc.gnu.org

GNU Compiler Collection (обычно используется сокращение GCC) — набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU(является рекурсивным акронимом, расшифровывающимся, как «GNU is Not Unix»). GCC является свободным программным обеспечением, распространяется фондом свободного программного обеспечения (FSF) на условиях GNU GPL и GNU LGPL и является ключевым компонентом GNU toolchain. Он используется как стандартный компилятор для свободных UNIX-подобных операционных систем.

Изначально названный GNU C Compiler был выпущен в 1987 году и поддерживал только язык Си. Позднее GCC был расширен для компиляции исходных кодов на таких языках программирования, как C++, Objective-C, Java, Fortran, Ada и Go.

GCC был портирован на широкий спектр процессорных архитектур и он широко используется в качестве инструмента в развитии свободного и проприетарного программного обеспечения . GCC также доступен для большинства встраиваемых систем, включая системы базирующиеся на ARM, AMCC и Freescale Power Architecture. Компилятор может быть нацелен на широкий спектр платформ.

С версии 4.2.2 GCC перешёл на лицензию GPLv3.

Будучи официальным компилятором системы GNU, GCC также является главным компилятором для сборки ряда других операционных систем; среди них — различные варианты Linux и BSD, а также ReactOS, Mac OS X, OpenSolaris, NeXTSTEP, BeOS и Haiku.

GCC часто выбирается для разработки программного обеспечения, которое должно работать на большом числе различных аппаратных платформ. Различия между «родными» для каждой из аппаратных платформ компиляторами приводят к трудностям при разработке кода, который бы корректно компилировался разными компиляторами, а кроме того, при использовании различных компиляторов сильно усложняются сборочные скрипты, которые должны собирать ПО для всех аппаратных платформ. При использовании GCC для компиляции кода под разные платформы будет использован один и тот же синтаксический анализатор. Поэтому если удалось собрать программу для одной из целевых платформ, то велика вероятность, что программа нормально соберётся и для других платформ.

История

Начало GCC было положено Ричардом Столлманом, который реализовал первый вариант GCC в 1985 году на нестандартном и непереносимом диалекте языка Паскаль; позднее компилятор был переписан на языке Си Леонардом Тауэром (англ. Leonard H. Tower Jr.) и Ричардом Столлманом[2] и выпущен в 1987 году Stallman, Richard M. (2001) «Contributors to GCC,» in Using and Porting the GNU Compiler Collection (GCC) for gcc version 2.95 (Cambridge, Mass.: Free Software Foundation)</ref>.

В настоящее время GCC поддерживается группой программистов со всего мира. GCC является лидером по количеству процессоров и операционных систем, которые он поддерживает.

Лицензия

GCC версии 4.2.1 стал последним релизом, выпущенным под GNU General Public License версии 2. Все последующие версии лицензируются по GPL версии 3[3].

Языки

C версии 4.6 стандартный компилятор включает в себя front-end’ы для языков:

Fortran front-end был G77 до версии 4.0, которая поддерживает только FORTRAN 77. В новых версиях G77 отбрасывается в пользу нового GNU Fortran front-end (сохранив большую часть расширений языка G77), что поддерживает Fortran 95 и большинство частей Fortran 2003 и Fortran 2008, а также front-end для CHILL был понижен из-за отсутствия технического обслуживания.

Архитектуры

Список поддерживаемых GCC (для версии 4.3) процессоров включает в себя:

Менее известные процессоры, поддерживаемые в стандартном релизе:

Дополнительные типы архитектур и процессоров, которые поддерживаются версиями GCC, но поддержкой которых занимаются сторонние организации (не Фонд свободного программного обеспечения):

Компилятор GCJ Java может выбрать либо родной язык архитектуры машины или Java Virtual Machine Java bytecode.

Разработка

Текущая стабильная версия GCC 6.2 была выпущена 22 августа 2016 г.[5]

Начиная с версии 4.8, GCC реализован в C ++.[6]

GCC 4.6 поддерживает множество новых Objective-C функций, таких как объявление и синтезирование свойств, точечный синтаксис,быстрое перечисление, опциональные методы протокола, атрибуты метод / протокол / класс, расширение классов и новый GNU Objective-C во время выполнения API. Он также поддерживает язык программирования Go и включает в себя библиотеку libquadmath, которая обеспечивает четырехкратную точность математических функций, поддерживающих __float128 тип данных. Библиотека используется для обеспечения REAL(16) типа в GNU Fortran. GCC использует множество стандартных инструментов в своей сборке, в том числе Perl, Flex Bison и другие. Кроме того, он в настоящее время требует трех дополнительных библиотек, чтобы построить: GMP, MPC и MPFR.

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

Примечания

  1. GCC 6.1 Released
  2. Stallman, Richard M. (February 1986). "GNU Status". GNU's Bulletin (Free Software Foundation) 1 (1). 
  3. "Tools: GCC 4.2.1 Released — KernelTrap". 
  4. http://gcc.gnu.org/ "TI C6X processor support [2011-07-15] A port for the TI C6X family of processors "
  5. "GCC 6 Release Series". 
  6. "GCC 4.8 Release Series: Changes, New Features, and Fixes".