GNU fordítógyűjtemény | |
---|---|
Típusú | fordítóprogram |
Fejlesztő | GNU projekt |
Beírva | C++ |
Operációs rendszer | GNU/Linux [5] és BSD [6] |
Első kiadás | 1987. május 23. [1] |
Hardver platform | platformközi |
legújabb verzió |
|
Teszt verzió |
|
Engedély | GNU GPL 3 |
Weboldal | gcc.gnu.org _ |
Médiafájlok a Wikimedia Commons oldalon |
A GNU Compiler Collection (általában GCC - ként rövidítve ) a GNU projekt részeként kifejlesztett fordítók gyűjteménye különböző programozási nyelvekhez . A GCC egy ingyenes szoftver , amelyet többek között a Free Software Foundation (FSF) terjeszt a GNU GPL és a GNU LGPL feltételei szerint , és a GNU eszközlánc kulcsfontosságú összetevője . Ingyenes UNIX-szerű operációs rendszerek szabványos fordítójaként használják .
Eredetileg GNU C Compiler néven csak a C nyelvet támogatta . A GCC-t később kiterjesztették forráskódok fordítására olyan programozási nyelveken, mint a C++ , Objective- C , Java , Fortran , Ada , Go , GAS és D.
A 4.2.2-es verziótól a GCC a GPLv3 licencre váltott .
A GCC-t Richard Stallman indította el , aki 1985-ben implementálta a GCC első változatát Pascal nem szabványos és nem hordozható dialektusában ; a fordítót később Leonard Tower és Richard Stallman [7] átírta C nyelven, és 1987-ben [8] adták ki a GNU projekt fordítójaként, amely maga is szabad szoftver volt. A GCC fejlesztését a Free Software Foundation felügyeli [9] .
A GCC-t jelenleg a világ minden tájáról érkező programozók csoportja tartja karban. A GCC vezető szerepet tölt be az általa támogatott processzorok és operációs rendszerek számát tekintve.
Hivatalos GNU rendszerfordítóként a GCC egyben a fő fordító is számos más operációs rendszer felépítéséhez; köztük a Linux és a BSD különféle változatai (korábban a clang llvm használatos jelenleg), valamint a ReactOS , a Mac OS X , az OpenSolaris , a NeXTSTEP , a BeOS és a Haiku .
A GCC-t gyakran választják olyan szoftverek fejlesztésére, amelyeknek nagyszámú különböző hardverplatformon kell futniuk. Az egyes hardverplatformok „natív” fordítói közötti különbségek nehézségeket okoznak a különböző fordítók által helyesen lefordított kódok fejlesztésében, és ezen túlmenően, ha különböző fordítókat használunk, nagyon bonyolulttá válnak a szkriptek, amelyeknek minden hardverplatformhoz szoftvert kell készíteniük. Ha GCC-t használ a kód fordítására különböző platformokhoz, akkor ugyanazt az elemzőt használja a rendszer . Ezért, ha valamelyik célplatformra sikerült lefordítani a programot, akkor nagy a valószínűsége annak, hogy a program más platformokra is normálisan fog lefordítani.
A szabványos fordító a következő nyelvekhez tartalmaz kezelőfelületeket :
A CHILL előlapja korábban került hozzáadásra, de az elégtelen támogatás miatt kikerült a készletből. A 4.0-s verzió előtt a Fortran kezelőfelülete G77 volt, amely csak a FORTRAN 77-et támogatta. Az új verziókban a G77-et elvetették az új GFortran frontend javára, amely támogatja a Fortran 95-öt.
A Pascal , a Modula-2 , a Modula-3 , a Mercury , a VHDL és a PL/I számára is vannak harmadik féltől származó front-endek .
A GCC által támogatott processzorok listája (a 7.1-es verzióhoz) tartalmazza
A szabványos kiadásban támogatott kevésbé ismert processzorok:
A GCC verziói által támogatott, de harmadik felek által támogatott architektúrák és processzorok további típusai (nem a Free Software Foundation):
A GCC frontend a UNIX platformon futó fordítók szabványa. A felhasználó meghív egy gcc nevű vezérlőprogramot . Értelmezi a parancssori argumentumokat, meghatározza és elindítja a saját fordítóit a kívánt nyelvhez minden bemeneti fájlhoz, és szükség esetén elindítja az assemblert és a linkert .
Minden nyelv fordítója külön program, amely forráskódot vesz fel, és összeállítási nyelvi kimenetet állít elő . Minden fordítónak közös a belső felépítése: egy előtér, amely elemzi és létrehoz egy absztrakt szintaxisfát , és egy háttér, amely a fát Register Transfer Language (RTL) nyelvvé alakítja , különféle optimalizálásokat hajt végre, majd egy assembly nyelvű programot állít elő. architektúrától függő mintaillesztés .
A 4.7.2-es verzió előtt a GCC szinte teljes egészében C nyelven íródott, bár az Ada kezelőfelületének nagy része Ada nyelven íródott . 2012. augusztus 14. óta a fejlesztést lefordították C++ [15] , 4.8-as [16] verzióra, és később egy C++ fordítót igényel, amely támogatja a C++ 2003-at.
A GCC-vel lefordított programok hibakeresésének fő eszköze a GNU Debugger (gdb). Vannak speciális hibakereső eszközök is:
A GCC 4.2.1-es verziója volt az utolsó kiadás a GNU General Public License 2. verziója alatt . Az összes későbbi verzió a GPL 3 -as verziója alatt licencelt [17] .
Néhány OpenBSD fejlesztő , mint például Theo de Raadt és Otto Moerbeek , kritizálja a GCC -t, mint "nehézkes, bugos, lassú és rossz kódot generáló" [18] . Emiatt a kritikus hozzáállás miatt, valamint a meglehetősen korlátozó (a BSD-hez képest) GPL-licenc miatt, amely alatt a fordítók gyűjteménye kiadják, a NetBSD -ben és az OpenBSD -ben a GCC- t más fordítókkal, például PCC -vel próbálták lecserélni [19]. . Hasonló munkálatok zajlanak a FreeBSD -ben is, hogy a GCC-t Clang -re cseréljék [20] .
GNU projekt | ||
---|---|---|
Sztori | ||
Licencek |
| |
Szoftver _ |
| |
Személyiségek |
| |
Egyéb témák |
|
Ingyenes és nyílt forráskódú szoftver | |
---|---|
A fő dolog |
|
Közösség |
|
Szervezetek | |
Licencek | |
Problémák | |
Egyéb |
|
|