Pozytywne informacje z Polski i ze Świata.

Tutaj znajdziesz je wszystkie!

GNU Compiler Collection

Z Wikipedii

Skocz do: nawigacji, szukaj
GNU Compiler Collection
Logo programu
Rodzaj Kompilator
Aktualna wersja stabilna 4.3.2 / 27 sierpnia 2008; 40 dni temu
Producent The GNU Project
Licencja GPL
http://gcc.gnu.org
Screenshot

GCC (ang. GNU Compiler Collection) to zestaw kompilatorów do różnych języków programowania rozwijany w ramach projektu GNU i udostępniany na licencji GPL oraz LGPL. GCC jest podstawowym kompilatorem w systemach uniksopodobnych przy czym szczególnie ważną rolę odgrywa w procesie budowy jądra Linuksa. Początkowo skrótowiec GCC oznaczał GNU C Compiler, ponieważ był to kompilator wyłącznie do języka C.

Pierwsza wersja kompilatora o numerze 1.0 została opublikowana 23 maja 1987 roku przez Richarda Stallmana. Znaczącym wydarzeniem w historii rozwoju GCC było wydanie wersji 2.95 w lipcu 1999 roku - pierwszej po zintegrowaniu z projektem EGCS.

Spis treści

[edytuj] Kompilatory dostępne w GCC

W skład GCC wchodzą kompilatory następujących języków programowania:

a także eksperymentalnie

Istnieje również frontend języka D dla GCC - gdc ( strona projektu )

[edytuj] Środowisko pracy

Kompilatory wchodzące w skład GCC mogą być uruchamiane na wielu różnych platformach sprzętowych jak i systemowych. Za ich pomocą można generować kod wynikowy przeznaczony dla różnych procesorów i systemów operacyjnych oraz dokonywać tzw. kompilacji skrośnej. Poniżej znajduje się lista kilku najważniejszych architektur sprzętowych, na których uruchomiono GCC.

Poniżej zestawiono systemy operacyjne umożliwiające uruchomienie GCC

Kompilatory GCC (w szczególności kompilator C) służą do kompilacji wielu jąder systemów operacyjnych, takich jak Linux, Hurd, FreeBSD, oraz wielu systemów eksperymentalnych.

[edytuj] Budowa i działanie GCC

Program gcc (wywoływany podczas kompilacji np. z linii poleceń) odpowiada za przetworzenie argumentów, uruchomienie odpowiedniego kompilatora właściwego dla języka programowania w jakim zakodowano plik z kodem źródłowym, wykonanie programu asemblera dla tak otrzymanego wyniku oraz uruchomienie konsolidatora (linkera) w celu uzyskania pliku wykonywalnego. Przykładowo dla pliku napisanego w C zostaną wykonane następujące programy: preprocesor cpp, kompilator cc1, asembler as oraz konsolidator collect2 (dostępny zazwyczaj jako program ld). Należy przy tym zwrócić uwagę, iż program as wchodzi w skład pakietu oprogramowania binutils. Również pliki nagłówkowe biblioteki standardowej języka C nie są częścią GCC. Kompilator GCC składa się z 3 głównych części: front endu, middle endu oraz back endu.

[edytuj] front end

Dla każdego języka programowania obsługiwanego przez GCC istnieje oddzielny front end. Dzięki temu względnie łatwo można dodawać kompilatory do nowych języków. Plik z kodem źródłowym poddawany jest procesowi analizy składniowej za pomocą ręcznie zakodowanego parsera. W efekcie tego działania powstaje reprezentacja programu zwana AST (ang. abstract syntax tree), która jest następnie przetwarzana do postaci w pełni niezależnej od pierwotnie użytego języka programowania GENERIC lub GIMPLE.

[edytuj] middle end

Na tym etapie kompilator dokonuje optymalizacji kodu polegającej na:

  • usunięciu "martwego" kodu, który się nigdy nie wykona
  • obliczeniu stałych wartości i zastąpieniu nimi wyrażeń zawartych w programie
  • wyeliminowaniu kodu nadmiarowego
  • wykonaniu innych optymalizacji

Reprezentacja kodu zamieniana jest z postaci GIMPLE do innej zwanej RTL (ang. Register Transfer Language).

[edytuj] back end

Ta część GCC odpowiada za wygenerowanie kodu asemblera przeznaczonego dla konkretnej architektury sprzętowej, a z niego kodu obiektowego. Ponieważ na tym etapie kompilator ma wiele informacji na temat docelowej platformy może dokonać kolejnych optymalizacji kodu np. uwzględniając budowę procesora, zestaw jego rozkazów czy specyficzne rozszerzenia.

[edytuj] Rozszerzenia języka C

GCC zawiera wiele rozszerzeń ponad to, co określają standardy ANSI i ISO.

Są to m.in.:

  • zmienne etykietowe
  • etykiety lokalne
  • traktowanie dowolnych fragmentów kodu (statement) jako wyrażeń (expression)
  • zagnieżdżane definicje funkcji
  • heksadecymalne deklarowanie zmiennych zmiennoprzecinkowych
  • makra o zmiennej liczbie argumentów
  • konstrukcja case z przedziałami

[edytuj] Zmienne etykietowe

# include <stdio.h>
 
void foo (int nr)
{
  static void * labels [] = {&&label0, &&label1};
 
  goto *labels [nr];
label0:
  printf("Code 0\n");
  return;
label1:
  printf("Code 1\n");
  return;
}
 
int main()
{
  foo(0);
  foo(1);
  return 0;
}

[edytuj] Inline Assembler w C/C++

GCC umożliwia użycie asemblera w kodzie. Nie są to jednak pojedyncze instrukcje, tylko całe bloki razem ze zdefiniowanymi specjalnym systemem interfejsem między asemblerem a C/C++. Dzięki temu GCC może o wiele lepiej optymalizować kod.

W poniższym przykładzie program drukuje najpierw i=1, później i=2. GCC sam dokonuje alokacji rejestrów oraz przeniesienia między rejestrami a zmienną i na stosie.

# include <stdio.h>
 
int main()
{
  int i=0;
 
  asm("movl $1, %0" : "=g" (i));
  printf("i = %d\n", i);
  asm("addl $1, %0" : "+g" (i));
  printf("i = %d\n", i);
  return 0;
}

[edytuj] Linki zewnętrzne

Wikinews
Zobacz wiadomość w serwisie Wikinews na temat premiery GCC 4.0


Związkowa antyreklama szpitali spółek

„Dostawka na szpitalnym korytarzu z 70-procentowym rabatem” - to wizja ochrony zdrowia w biuletynie „Solidarności”. Ma się urzeczywistnić po zamianie szpitali w spółki.

Październikowy zryw ustawowy

Nadzwyczajna mobilizacja w szeregach PO-PSL. Do końca października Sejm ma uchwalić ponad 120 ustaw

Kania pozywa Dochnala

Sąd Rejonowy w Mysłowicach przesłucha lobbystę Marka Dochnala w procesie, jaki za zniesławienie wytoczyła mu dziennikarka Dorota Kania.

Pierwsze czytanie, Ewangelia, drugie czytanie. I pod prąd

Od niedzieli 253 hierarchów Kościoła katolickiego zastanawia się w Rzymie, jak przybliżyć Biblię katolikom. 59-letni metropolita poznański abp Stanisław Gądecki chce zaproponować zmiany w przebiegu mszy świętej

Każdy daje 10 zł na TVP i Polskie Radio

Publiczna opłata licencyjna pobierana co miesiąc od każdego Polaka - to propozycja stowarzyszeń twórczych na nowy rodzaj abonamentu radiowo-telewizyjnego

B. prezydenta Opola nie przyjęto do aresztu, bo się spóźnił

Skazanego za korupcję byłego prezydenta Opola Leszka Pogana nie przyjęto w poniedziałek do aresztu, gdzie stawił się, by odbyć karę więzienia. Pogan spóźnił się około dwóch godzin.

Pogan ugrał jeszcze jedną noc

Leszek Pogan noc z poniedziałku na wtorek miał spędzić w więzieniu. Ale został odesłany do domu, bo gdy pojawił się na miejscu, nie pracowała już administracja. - Muszę znów przyjechać jutro - skomentował i wsiadł do taksówki.

Brutalne zabójstwo 16-latki. Policja zatrzymała podejrzanego

Policjanci ze specjalnej grupy powołanej przez komendanta wojewódzkiego Policji we Wrocławiu zatrzymali mężczyznę podejrzanego o zabójstwo 16-letniej gimnazjalistki, do którego doszło pod koniec września br. we Wrocławiu. 27-latkowi grozi kara dożywotniego więzienia.

Dyrektor ośrodka rehabilitacji oskarżony o molestowanie pracownicy

Prokuratura rejonowa w Prudniku oskarżyła o molestowanie seksualne pracownicy dyrektora ośrodka rehabilitacji w Racławicach Śląskich. Akt oskarżenia trafił do sądu - poinformowała rzecznik opolskiej prokuratury okręgowej, Lidia Sieradzka.

Lekarka "Janosikowa" nie przyznaje się do winy

Krakowska lekarka, która leczyła bezdomnych i została oskarżona o wyłudzenie pieniędzy z kasy chorych, przed sądem nie przyznała się do winy. W poniedziałek złożyła wyjaśnienia.

Zobacz także inne, godne uwagi serwisy. Piewrszy z nich prezentuje wysokiej jakości drzwi natomiast drugi z nich projekty domów parterowych.
Związkowa antyreklama szpitali spółek

„Dostawka na szpitalnym korytarzu z 70-procentowym rabatem” - to wizja ochrony zdrowia w biuletynie „Solidarności”. Ma się urzeczywistnić po zamianie szpitali w spółki.

Październikowy zryw ustawowy

Nadzwyczajna mobilizacja w szeregach PO-PSL. Do końca października Sejm ma uchwalić ponad 120 ustaw

Kania pozywa Dochnala

Sąd Rejonowy w Mysłowicach przesłucha lobbystę Marka Dochnala w procesie, jaki za zniesławienie wytoczyła mu dziennikarka Dorota Kania.

Pierwsze czytanie, Ewangelia, drugie czytanie. I pod prąd

Od niedzieli 253 hierarchów Kościoła katolickiego zastanawia się w Rzymie, jak przybliżyć Biblię katolikom. 59-letni metropolita poznański abp Stanisław Gądecki chce zaproponować zmiany w przebiegu mszy świętej

Każdy daje 10 zł na TVP i Polskie Radio

Publiczna opłata licencyjna pobierana co miesiąc od każdego Polaka - to propozycja stowarzyszeń twórczych na nowy rodzaj abonamentu radiowo-telewizyjnego

B. prezydenta Opola nie przyjęto do aresztu, bo się spóźnił

Skazanego za korupcję byłego prezydenta Opola Leszka Pogana nie przyjęto w poniedziałek do aresztu, gdzie stawił się, by odbyć karę więzienia. Pogan spóźnił się około dwóch godzin.

Pogan ugrał jeszcze jedną noc

Leszek Pogan noc z poniedziałku na wtorek miał spędzić w więzieniu. Ale został odesłany do domu, bo gdy pojawił się na miejscu, nie pracowała już administracja. - Muszę znów przyjechać jutro - skomentował i wsiadł do taksówki.

Brutalne zabójstwo 16-latki. Policja zatrzymała podejrzanego

Policjanci ze specjalnej grupy powołanej przez komendanta wojewódzkiego Policji we Wrocławiu zatrzymali mężczyznę podejrzanego o zabójstwo 16-letniej gimnazjalistki, do którego doszło pod koniec września br. we Wrocławiu. 27-latkowi grozi kara dożywotniego więzienia.

Dyrektor ośrodka rehabilitacji oskarżony o molestowanie pracownicy

Prokuratura rejonowa w Prudniku oskarżyła o molestowanie seksualne pracownicy dyrektora ośrodka rehabilitacji w Racławicach Śląskich. Akt oskarżenia trafił do sądu - poinformowała rzecznik opolskiej prokuratury okręgowej, Lidia Sieradzka.

Lekarka "Janosikowa" nie przyznaje się do winy

Krakowska lekarka, która leczyła bezdomnych i została oskarżona o wyłudzenie pieniędzy z kasy chorych, przed sądem nie przyznała się do winy. W poniedziałek złożyła wyjaśnienia.

Zobacz także inne, godne uwagi serwisy. Piewrszy z nich prezentuje wysokiej jakości drzwi natomiast drugi z nich projekty domów parterowych.

Jeśli skorzystałeś z informacji przedstawionych tutaj?

Nie bądź samolubem. Daj link do serwisu http://www.theplaceofhousesinc.com wszystkim z Twojego GG.