-
Data: 2010-05-27 21:56:20
Temat: Re: GCC - jak działa?
Od: Adam Piotrowski <k...@i...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2010-05-27 12:47, l...@l...lon pisze:
> Witam,
>
> Czy ktoś może wie jaki jest schamet działania kompilatora GCC dla języka C?
> Tzn. jakie są przebiegi? Na pewno jest preprocesor, potem komilacja
> do *.s i linkowanie.
>
> Interesuje mnie kompilacja: czy można zoabczyć etap przejściowy, np.
> rozkład leksykalny czy też dzieje się to tylko wewnątrz kompilatora i z kodu
> źródłowego w C są od razu generowane isntrukcje assemblera?
>
> Pozdrawiam,
> Marcin
>
>
Hej
1) Rozklad leksykalny i skladniowy robione sa za pomoca specjalizowanych
funkcji dostosowanych do skladni C.
2) Z rozkladu leksyklanego to raczej za duzo nie zobaczysz, chociaz moge
sie mylic - jak bawilem sie kodem gcc to nie zwracalem uwagi na te
etapy, trzeba zerknac do kodu lub do GCC internals
3) Nie, z kodu C nie generujesz kodu assemblera, jakby tak bylo
musialbys zmieniac caly kompilator w przypadku portowania do innych
architektur nic x86
4) Front end - zajmuje sie analiza leksykalna i skladniowa, zalezny od
jezyka, niezalezny od architektury docelowej
Middle end - zajmuje sie optymalizacja - niezalezny do jezyka i architektury
Back end - nie zalezny od jezyka, zalezny od architekrury (przynajmniej
tak jest w teorii)
5) C -> GENERIC -> GIMPLE -> (SSA w przypadku optymalizacji - > GIMPLE)
-> RTL -> assembler : takie sa reprezentacje posrednie stosowane podczas
kompilacji
6) skompiluj sobie program (pod Linuxem) z parametrem -fdump-tree-all
aby zobaczyc jakie przeksztalcenia sa robione podczas optymalizacji kodu
na poziomie drzew. Ogolnie masz sporo opcji opisanych w rozdziale "3.9
Options for Debugging Your Program or GCC" w manualu do gcc
Adam
Następne wpisy z tego wątku
- 28.05.10 00:18 Adam Piotrowski
- 28.05.10 20:59 A...@g...com
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-03-01 "Policjant został ujęty obywatelsko..."
- 2025-03-01 zatrzymanie zbyszka maja
- 2025-03-01 Warszawa => Expert Recruiter 360 <=
- 2025-03-01 Chrzanów => NodeJS Developer <=
- 2025-03-01 Warszawa => Gen AI Engineer <=
- 2025-03-01 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-01 Kraków => Technical Team Leader (Clojure, Java) <=
- 2025-03-01 Zrobił TV OLED z TV LCD
- 2025-03-01 Gdynia => Sales Executive / KAM <=
- 2025-03-01 Błonie => Sales Specialist <=
- 2025-03-01 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-03-01 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-03-01 Błonie => Analityk Systemów Informatycznych (TMS SPEED) <=
- 2025-03-01 Wróblewo => Analityk finansowy <=
- 2025-03-01 Warszawa => Senior Frontend Developer (React + React Native) <=