Kolekce kompilátorů GNU | |
---|---|
Typ | kompilátor |
Vývojář | Projekt GNU |
Zapsáno v | C++ |
Operační systém | GNU/Linux [5] a BSD [6] |
První vydání | 23. května 1987 [1] |
Hardwarová platforma | multiplatformní |
Nejnovější verze | |
Testovací verze | |
Licence | GNU GPL 3 |
webová stránka | gcc.gnu.org _ |
Mediální soubory na Wikimedia Commons |
GNU Compiler Collection (běžně zkráceně GCC ) je sbírka kompilátorů pro různé programovací jazyky vyvinutá jako součást projektu GNU . GCC je svobodný software distribuovaný mimo jiné nadací Free Software Foundation (FSF) za podmínek GNU GPL a GNU LGPL a je klíčovou součástí GNU toolchainu . Používá se jako standardní kompilátor pro svobodné operační systémy podobné UNIXu .
Původně se jmenoval GNU C Compiler a podporoval pouze jazyk C. GCC byl později rozšířen o kompilaci zdrojových kódů v programovacích jazycích jako C++ , Objective-C , Java , Fortran , Ada , Go , GAS a D.
Od verze 4.2.2 přešlo GCC na licenci GPLv3 .
GCC odstartoval Richard Stallman , který implementoval první verzi GCC v roce 1985 v nestandardním a nepřenosném dialektu Pascalu ; kompilátor byl později přepsán v C Leonardem Towerem a Richardem Stallmanem [7] a vydán v roce 1987 [8] jako kompilátor pro projekt GNU, který sám byl svobodným softwarem. Na vývoj GCC dohlíží Free Software Foundation [9] .
GCC v současnosti spravuje skupina programátorů z celého světa. GCC je lídrem v počtu procesorů a operačních systémů , které podporuje.
Jako oficiální kompilátor systému GNU je GCC také hlavním kompilátorem pro vytváření řady dalších operačních systémů; mezi nimi jsou různé varianty Linuxu a BSD (dříve se v současnosti používá clang llvm) a také ReactOS , Mac OS X , OpenSolaris , NeXTSTEP , BeOS a Haiku .
GCC se často volí pro vývoj softwaru, který potřebuje běžet na velkém počtu různých hardwarových platforem. Rozdíly mezi „nativními“ kompilátory pro každou z hardwarových platforem vedou k potížím při vývoji kódu, který by byl správně zkompilován různými kompilátory, a navíc se při použití různých kompilátorů velmi komplikují sestavení skriptů, které musí sestavit software pro všechny hardwarové platformy. Při použití GCC ke kompilaci kódu pro různé platformy bude použit stejný analyzátor . Pokud se vám tedy podařilo zkompilovat program pro některou z cílových platforem, pak je vysoce pravděpodobné, že se program zkompiluje normálně i pro jiné platformy.
Standardní kompilátor obsahuje front-endy pro jazyky:
Frontend pro CHILL byl přidán dříve, ale kvůli nedostatečné podpoře byl ze sady vyřazen. Před verzí 4.0 byl front-end pro Fortran G77, který podporoval pouze FORTRAN 77. V nových verzích byl G77 vynechán ve prospěch nového frontendu GFortran, který podporuje Fortran 95.
Existují také front-endy třetích stran pro Pascal , Modula-2 , Modula-3 , Mercury , VHDL a PL/I .
Seznam procesorů podporovaných GCC (pro verzi 7.1) obsahuje
Méně známé procesory podporované ve standardní verzi:
Další typy architektur a procesorů, které jsou podporovány verzemi GCC, ale podporovány třetími stranami (nikoli Free Software Foundation):
Rozhraní GCC je standardem pro kompilátory na platformě UNIX. Uživatel vyvolá ovládací program s názvem gcc . Interpretuje argumenty příkazového řádku, určuje a spouští vlastní kompilátory pro požadovaný jazyk pro každý vstupní soubor a v případě potřeby spouští assembler a linker .
Kompilátor každého jazyka je samostatný program, který přebírá zdrojový kód a vytváří výstup v jazyce symbolických instrukcí . Všechny kompilátory sdílejí společnou vnitřní strukturu: přední část, která analyzuje a generuje abstraktní strom syntaxe , a zadní část, která převádí strom na jazyk pro přenos registrů (RTL), provádí různé optimalizace a poté generuje program v jazyce symbolických instrukcí pomocí porovnávání vzorů závislé na architektuře .
Před verzí 4.7.2 bylo GCC napsáno téměř výhradně v jazyce C , ačkoli velká část front-endu pro Ada byla napsána v Ada . Od 14. srpna 2012 je vývoj přeložen do C++ [15] , verze 4.8 [16] a později vyžaduje kompilátor C++, který podporuje C++ 2003 pro jejich sestavení.
Hlavním nástrojem pro ladění programů zkompilovaných pomocí GCC je GNU Debugger (gdb). Existují také vysoce specializované nástroje pro ladění:
GCC verze 4.2.1 byla poslední verze vydaná pod GNU General Public License verze 2 . Všechny následující verze jsou licencovány pod licencí GPL verze 3 [17] .
Někteří vývojáři OpenBSD , jako Theo de Raadt a Otto Moerbeek , kritizovali GCC jako „nemotorný, chybný, pomalý a generující špatný kód“ [18] . Kvůli tomuto kritickému postoji a také kvůli poměrně restriktivní (ve srovnání s BSD) licenci GPL, pod kterou je kolekce kompilátorů vydávána, byl učiněn pokus nahradit GCC v NetBSD a OpenBSD jinými kompilátory, jako je PCC [19] . Podobné práce na nahrazení GCC za Clang probíhají ve FreeBSD [20] .
Projekt GNU | ||
---|---|---|
Příběh | ||
licence |
| |
Software _ |
| |
Osobnosti |
| |
Další témata |
|
Bezplatný open source software | |
---|---|
Hlavní věc |
|
Společenství |
|
Organizace | |
licence | |
Problémy | |
jiný |
|
|