GNU fordítógyűjtemény

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. július 11-én felülvizsgált verziótól ; az ellenőrzések 15 szerkesztést igényelnek .
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 .

Áttekintés

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.

Nyelvek

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 .

Építészet

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):

Szerkezet

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.

GCC-vel összeállított hibakereső programok

A GCC-vel lefordított programok hibakeresésének fő eszköze a GNU Debugger (gdb). Vannak speciális hibakereső eszközök is:

Licenc

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] .

Kritika

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] .

Lásd még

Jegyzetek

  1. https://www.gnu.org/software/gcc/releases.html
  2. Biener R. GCC 12.2 Megjelenés – 2022.
  3. Biener R. GCC 11.3 Megjelenés  - 2022 .
  4. Jelinek J. GCC 10.4 Megjelenés  : 2022 .
  5. A GCC telepítése - GNU Project - Free Software Foundation (FSF)
  6. A GCC telepítése - GNU Project - Free Software Foundation (FSF)
  7. Stallman, Richard M. GNU állapot  (határozatlan)  // GNU Bulletin. - Free Software Foundation, 1986. - február ( 1. köt. , 1. sz. ). Archiválva az eredetiből 2007. augusztus 21-én.
  8. Tower, Leonard (1987) " GNU C fordító béta teszt kiadás, archiválva 2011. november 5-én a Wayback Machine -nél " comp.lang.misc USENET hírcsoport; lásd még: http://gcc.gnu.org/releases.html#timeline Archiválva : 2006. december 28. a Wayback Machine -nél
  9. Stallman, Richard M. (2001) " Közreműködők a GCC-ben, archiválva 2007. január 3-án a Wayback Machine -nél " a GNU fordítógyűjtemény (GCC) használata és portolása témakörben Archiválva 2006. december 27-én a Wayback Machine for gcc 2.95-ös verziójához (Cambridge Mass. : Free Software Foundation)
  10. GCC 7 Release Series – Változások, új szolgáltatások és javítások – GNU Project – Free Software Foundation (FSF) . gcc.gnu.org. Letöltve: 2019. augusztus 31. Az eredetiből archiválva : 2020. szeptember 2.
  11. GCC 4.6 Release Series – Változások, új szolgáltatások és javítások – GNU Project – Free Software Foundation (FSF) . Letöltve: 2011. január 23. Az eredetiből archiválva : 2015. november 4..
  12. GDC-D programozási nyelv a GCC-hez . gdcproject.org. Letöltve: 2019. augusztus 31. Az eredetiből archiválva : 2019. augusztus 6..
  13. GCC 9 Release Series – Változások, új szolgáltatások és javítások – GNU Project – Free Software Foundation (FSF) . gcc.gnu.org. Letöltve: 2019. augusztus 31. Az eredetiből archiválva : 2022. február 19.
  14. http://gcc.gnu.org/ Archivált 2012. január 11-én a Wayback Machine -nél "TI C6X processzor támogatás [2011-07-15] Port a TI C6X processzorcsaládhoz"
  15. C++ konverzió. Ez a projekt a GCC in C++ projekt folytatása. Archiválva : 2012. október 14., a Wayback Machine / GCC wiki,  2012
  16. GCC 4.8 Release Series archiválva 2015. december 8-án a Wayback Machine -nél : "A GCC mostantól C++-t használ implementációs nyelvként. Ez azt jelenti, hogy a GCC forrásokból történő felépítéséhez olyan C++ fordítóra lesz szükség, amely megérti a C++ 2003-at."
  17. ↑ Eszközök : GCC 4.2.1 kiadás – KernelTrap  . kerneltrap.org (2007. július 21.). Hozzáférés dátuma: 2009. december 25. Az eredetiből archiválva : 2012. február 17.
  18. További információ az OpenBSD új fordítójáról - Mambo Archivált : 2008. szeptember 29.
  19. A BSD-licencű fordító felé (lefelé irányuló kapcsolat) . Letöltve: 2008. november 3. Az eredetiből archiválva : 2008. október 24.. 
  20. FreeBSD állapotjelentések 2009. január-március . Letöltve: 2010. április 19. Az eredetiből archiválva : 2010. április 17..

Irodalom

Linkek