GNU Compiler Collection
Матеріал з Вікіпедії — вільної енциклопедії.
| GNU Compiler Collection | |
|---|---|
GCC, під керуванням командного рядка |
|
| Тип: | Компілятор |
| Розробник: | The GNU Project |
| Стабільний випуск: | 4.4.0 / 21 квітня 2009 |
| ОС: | декілька |
| Ліцензія: | GPL |
| Сайт: | gcc.gnu.org |
Збі́рка Компіля́торів GNU (GNU Compiler Collection, GCC) — набір компіляторів для різних мов програмування. GCC — вільне програмне забезпечення, розроблене Фондом Вільних Програм під ліцензією GNU GPL та GNU LGPL, і є ключовою складовою набору знарядь розробки GNU (GNU development toolchain). Це стандартний компілятор для вільних Юнікс-подібних операційних систем, і деяких пропрієтарних систем, що з них розвинулись, наприклад Mac OS X.
Спочатку називався GNU Компілятор Сі, оскільки підтримував лише одну мову програмування — C. Пізніше був розширений для підтримки C++, Fortran, Java (компілятор GCJ), Ada, та інших.
Зміст |
[ред.] Огляд
GCC започаткований Річардом Столменом у 1985 році як компілятор для проекту GNU Project, аби мати компілятор який є вільним програмним забезпеченням. Його розробкою тісно опікувався Фонд Вільних Програм. Перша версія випущена навесні 1987, на кінець 1987 року з'явилася підтримка C++. GCC був першим незалежно створеним (не базувався на препроцесорі CFront Б'ярна Страуструпа) та першим власне компілятором (а не препроцесором у C) мови C++.
У 1997 група розробників, незадоволена повільним темпом і закритістю офіційної розробки GCC, створила проект EGCS (Experimental/Enhanced GNU Compiler System — Експериментальна/Покращена Збірка Компіляторів GNU), який об'єднав декілька експериментальних відгалужень GCC. Розробка EGCS з часом виявилась більш життєвою ніж GCC, і у квітні 1999 року EGCS оголошена офіційною версією GCC.
GCC тепер розробляється широкою групою розробників зі всього світу. Вона перенесена на більшу кількість типів процесорів та операційних систем ніж будь-який інший компілятор.
GCC є офіційним компілятором GNU, включно із GNU/Linux, прийнятий як основний компілятор і для інших операційних систем, таких як варіанти *BSD, Mac OS X, NeXTSTEP, і BeOS. Версія GCC під Microsoft Windows забезпечується проектами MinGW та Cygwin, під DOS — проектом DJGPP (лише C/C++).
[ред.] Мови
Версія 4.0.0 (випущена 20 квітня 2005), у типовій збірці підтримує наступні мови:
- Ада (GCC для Ada також відома як GNAT)
- Сі
- C++ (GCC для C++ також відома як G++)
- Фортран (GCC для Фортрану також відома як GFortran)
- Java (GCC для Java також відома як GCJ)
- Objective-C
Підтримка CHILL припинена через недостатню активність розробки. Додаткові проекти підтримують мови програмування Pascal, Modula-2, Modula-3, Mercury, VHDL, PL/I та Objective-C++.
[ред.] Архітектури
GCC (версії 4.1) створює код для таких процесорних архітектур:
Менш відомі серед підтримуваних процесорів включають A29K, ARC, Atmel AVR, C4x, CRIS, D30V, DSP16xx, FR-30, FR-V, Intel i960, IP2000, M32R, 68HC11, MCORE, MMIX, MN10200, MN10300, NS32K, ROMP, Stormy16, V850 і Xtensa. Окремими проектами підтримується D10V, PDP-10 і Z8000.
[ред.] Структура
Зовнішній інтерфейс GCC є стандартом для компіляторів на платформі Unix. Користувач викликає управляючу програму, яка називається gcc. Вона інтерпретує аргументи командного рядка, визначає і запускає для кожного вхідного файлу свої компілятори потрібної мови, запускає, якщо необхідно, асемблер і компонувальник.
Компілятор кожної мови є окремою програмою, яка отримує початковий текст і породжує вихід на мові асемблера. Всі компілятори мають загальну внутрішню структуру:
- front end, який проводить синтаксичний розбір і породжує абстрактне синтаксичне дерево,
- і back end, який конвертує дерево в Register Transfer Language (RTL), виконує різні оптимізації, потім породжує програму на мові асемблера, використовуючи архітектурно-залежне зіставлення зі зразком.
GCC майже повністю написаний на Сі, хоча значна частина front-end для Ади написана на Ада.
[ред.] Відладка програм, скомпільованих за допомогою GCC
Головним інструментом для відладки програм, скомпільованих за допомогою GCC, є GNU Debugger (gdb). Існують також вузькоспеціалізовані засоби для відладки:
- Valgrind для пошуку витоків пам'яті
- GNU Profiler (gprof) використовується для того, щоб визначити, скільки часу йде на виконання тієї або іншої частини програми, як часто викликаються ті або інші процедури; для використання gprof необхідно компілювати програму із спеціальними опціями для включення «профілізації».
[ред.] Інструментальні оболонки
Компілятори мають десятки опцій і користуватися ними напряму не зовсім зручно. Для спрощення роботи використовують оболонки або інтегровані середовища розробки — Code::Blocks, Dev-C++, Eclipse, KDevelop, NetBeans.
[ред.] Дивіться також
[ред.] Зовнішні посилання
[ред.] Література
- Richard M. Stallman: Using and Porting the GNU Compiler Collection, Free Software Foundation, ISBN 0-595-10035-X
- Richard M. Stallman: Using Gcc: The Gnu Compiler Collection Reference, Free Software Foundation, ISBN 1-882114-39-6
- Brian J. Gough: An Introduction to GCC, Network Theory Ltd., ISBN 0-9541617-9-3
- Arthur Griffith, GCC: The Complete Reference. McGrawHill/Osborne. ISBN 0-07-222405-3.
|
|||||||||||||||||||||||||||||

