-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!new
s.nask.pl!news.nask.org.pl!news.interia.pl!not-for-mail
From: Adam Piotrowski <k...@i...pl>
Newsgroups: pl.comp.programming
Subject: Re: GCC - jak działa?
Date: Thu, 27 May 2010 23:56:20 +0200
Organization: INTERIA.PL S.A.
Lines: 42
Message-ID: <htmpq4$b18$1@usenet.news.interia.pl>
References: <s...@l...lon>
NNTP-Posting-Host: staticline12567.toya.net.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: usenet.news.interia.pl 1274997380 11304 85.89.170.28 (27 May 2010 21:56:20
GMT)
X-Complaints-To: u...@f...interia.pl
NNTP-Posting-Date: Thu, 27 May 2010 21:56:20 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.9) Gecko/20100317
Lightning/1.0b1 Thunderbird/3.0.4
In-Reply-To: <s...@l...lon>
X-Antivirus: avast! (VPS 100527-1, 2010-05-27), Outbound message
X-Antivirus-Status: Clean
Xref: news-archive.icm.edu.pl pl.comp.programming:185648
[ ukryj 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
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-06-05 [ot] spec od renowacji/reperacji kurtek skorzanych
- 2024-06-05 Koszt przywrócenia wychodnego numerowi w Plusie
- 2024-06-06 korki prawie takie same
- 2024-06-05 Takie elektryki mają sens ale czy z Francuską MARŻĄ?
- 2024-06-05 Warta S.A. - przyjęta odpowiedzialność?
- 2024-06-04 nie zna życia ten
- 2024-06-06 A jednak nie kondensatory
- 2024-06-06 Re: A jednak nie kondensatory
- 2024-06-06 Wymiana SIM Aero2
- 2024-06-06 Gdańsk => Programista Full Stack .Net <=
- 2024-06-06 Warszawa => Senior React Native Developer <=
- 2024-06-06 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-06-06 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-06-05 Olsztyn => Sales Specialist <=
- 2024-06-05 Ulm => Integration & Test Engineer <=