Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
4
ROZDZIAŁ1.WPROWADZENIE
oddzielnemuprogramowi,nazywanemupreprocesorem.Możeonrównieżrozwijać
skrótynazywanemakramidopełnychwyrażeńjęzykaźródłowego.
Zmodyfikowanyprogramźródłowyjestnastępnieprzekazywanydokompila-
tora.Tenmożeutworzyćjakoswojewyjścieprogramwjęzykuasemblera,gdyż
tworzeniekoduasemblerajestłatwiejszedowykonania,aponadtołatwiejsze
dodebugowania.Uzyskanykodasemblerajestnastępnieprzetwarzanyprzez
kolejnyprogramnazywanypoprostuasemblerem,którygenerujerelokowalny
kodmaszynowyjakoswojewyjście.
Obszerneprogramyczęstokompilowanewczęściach,zatemuzyskane
fragmentykodumaszynowegomogąwymagaćzłączeniazinnymirelokowal-
nymiplikamiwynikowymiiplikamibibliotekwkod,któryostateczniemoże
zostaćuruchomionynakomputerze.Konsolidator(nazywanyrównieżlinke-
rem)rozwiązujezewnętrzneadresypamięci,dziękiczemukodwjednympliku
możeodnosićsiędolokalizacjiwinnympliku.Następnieprogramładujący
(loader)umieszczawszystkiewykonywalneplikiobiektowewpamięciwcelu
wykonania.
1.1.1.Ćwiczeniadopodrozdziału1.1
Ćwiczenie1.1.1:
Naczympolegaróżnicamiędzykompilatoremainterpre-
terem?
Ćwiczenie1.1.2:
Jakiezalety(a)kompilatorawobecinterpreteraoraz
(b)interpreterawobeckompilatora?
Ćwiczenie1.1.3:
Jakiekorzyścizapewniasystemprzetwarzaniajęzyka,wktó-
rymkompilatortworzykodwjęzykuasemblera,aniewjęzykumaszynowym?
Ćwiczenie1.1.4:
Kompilatortłumaczącyjedenjęzykwysokiegopoziomuna
innyjęzykwysokiegopoziomujestnazywanytranslatoremsource-to-source
lubtranskompilatorem.JakiemogąbyćkorzyściużyciajęzykaCjakojęzyka
wynikowegokompilatora?
Ćwiczenie1.1.5:Opiszkilkazadań,któremusiwykonaćasembler.
1.2.Strukturakompilatora
Dotegomiejscatraktowaliśmykompilatorjakoprostąskrzynkę,któramapuje
programźródłowynasemantycznierównoważnyprogramwynikowy.Jeślijed-
nakniecouchylimypokrywytejskrzynki,zobaczymy,żemapowanietojest
wykonywanewdwóchfazach:analizyisyntezy.
Częśćanalitycznadzieliprogramźródłowynaczęściskładoweistosujedo
nichstrukturęgramatyczną.Następnieużywatejstrukturydoutworzeniapo-
średniejreprezentacjiprogramuźródłowego.Jeśliczęśćanalitycznaodkryje,że
programźródłowyjestbłędniesformułowanypodwzględemskładniowymlub