eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingGCC - jak działa? › Re: GCC - jak działa?
  • 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: