Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2
ROZDZIAŁ1.WPROWADZENIE
gonarównoważnyprogramwinnymjęzykujęzykuwynikowym(patrzrysu-
nek1.1).Ważnąroląkompilatorajestzgłoszeniewykrytychwczasietłumaczenia
dowolnychbłędówwprogramieźródłowym.
programwynikowy
programźródłowy
Kompilator
RYSUNEK
101:Kompilator
Jeśliprogramwynikowyjestprogramemwykonywalnymwjęzykumaszyno-
wym,możezostaćuruchomionyprzezużytkownikawceluprzetworzeniuwejścia
iwygenerowaniawyjścia(patrzrysunek1.2).
wejście
wynikowy
Program
wyjście
RYSUNEK
102:Uruchamianiewynikowegoprogramu
Innympowszechniespotykanymrodzajemtranslatorajestinterpreter.Za-
miasttworzeniaprogramuwynikowegojakoefektutłumaczenia,interpreter
wydajesiębezpośredniowykonywaćoperacjewyspecyfikowanewprogramie
źródłowymwzględemdanychwejściowychdostarczanychprzezużytkownika,co
demonstrujerysunek1.3.
programźródłowy
Interpreter
wejście
wyjście
RYSUNEK
103:Interpreter
Zjednejstronyprogramwynikowywjęzykumaszynowymtworzonyprzez
kompilatorjestzazwyczajznacznieszybszyodinterpreteraprzyprzechodzeniu
odwejściadowyjścia.Zdrugiejstronyinterpreterzazwyczajudostępnialepszą
diagnostykębłędówniżkompilator,gdyżwykonujeprogramźródłowyinstrukcja
poinstrukcji.
Przykład1.1:
TranslatoryjęzykaJavałącząkompilacjęiinterpretację,copo-
kazujerysunek1.4.ProgramźródłowyJavamożezostaćnajpierwskompilowany
doformypośredniejnazywanejkodembajtowym(bytecode).Kodbajtowyjest
następnieinterpretowanyprzezmaszynęwirtualną.Zaletątegopodejściajestto,