Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.2.STRUKTURAKOMPILATORA
5
niejednoznacznysemantycznie,musizwrócićkomunikatyinformująceotych
niedociągnięciach,abyużytkownikmógłpodjąćdziałanianaprawcze.Wczęści
analitycznejgromadzonerównieżinformacjeoprogramieźródłowym,umiesz-
czanewstrukturzedanychnazywanejtablicąsymboli,którajestprzekazywana
wrazzreprezentacjąpośredniądofazysyntezy.Częśćsyntezykonstruujepo-
żądanyprogramwynikowyzreprezentacjipośredniejiinformacjizawartych
wtablicysymboli.Częśćanalitycznakompilatorajestczęstookreślanatermi-
nemfront-endlubpoprostuprzodem;częśćsyntetycznatoback-end,czylitył
kompilatora.
Jeślibardziejszczegółowoprzyjrzymysięprocesowikompilacji,zobaczymy,że
działaonjakosekwencjakilkufaz,którychkażdaprzekształcajednąreprezen-
tacjęprogramuźródłowegowkolejną.Typowyrozkładkompilatoranaposzcze-
gólnefazypokazujerysunek1.6.Wpraktycewielefazmożebyćgrupowanych
Tablicasymboli
Analizatorskładniowy(parser)
Analizatorleksykalny(lekser)
Generatorkodupośredniego
niezależnegomaszynowo
niezależnegomaszynowo
Analizatorsemantyczny
kodmaszynydocelowej
reprezentacjapośrednia
reprezentacjapośrednia
kodmaszynydocelowej
Optymalizatorkodu
Optymalizatorkodu
drzewoskładniowe
drzewoskładniowe
strumieńznakowy
strumieńtokenów
Generatorkodu
RYSUNEK
106:Fazykompilacji