Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
74
ROZDZIAŁ2.PROSTYTRANSLATORSTEROWANYSKŁADNIĄ
Tensamefektmożnauzyskać,jakpokazujerysunek2.20(b),przepisując
produkcjedla
A
wnastępującysposób,używającnowegosymbolunieterminal-
negoB:
B
A
→
→
;B
OB|ć
Nieterminalnysymbol
B
ijegoprodukcja
B→OB
sąrekurencyjneprawostronnie,
gdyżtaprodukcjadla
B
zawierasymbol
B
jakoostatnisymbolpoprawejstronie.
Produkcjeprawostronnierekurencyjneprowadządodrzew,którerozrastająsię
wdółwprawo,jaknarysunku2.20(b).Drzewarozrastającesięwprawo
sprawiają,żetrudniejszejesttłumaczeniewyrażeńzawierającychoperatory
lewostronniełączne,takiejakminus.Jednakwpodrozdziale2.5.2zobaczymy,
żenadalmożnauzyskaćpoprawnetłumaczeniewyrażeńdonotacjipostfiksowej
dziękistarannemuzaprojektowaniuschematutranslacji.
Wpodrozdziale4.3.3rozważymybardziejogólneformyrekurencjilewostron-
nejipokażemy,jakmożnawyeliminowaćjązgramatyki.
2.4.G.Ćwiczeniadopodrozdziału2.4
Ćwiczenie2.4.1:
Skonstruujparseryzstępująceopartenazejściachrekuren-
cyjnychdlaponiższychgramatyk:
(a)S→+SS|-SS|a
(b)S→S(S)S|ć
(c)S→0S1|01
2.5.Translatordlaprostychwyrażeń
Używająctechnikprzedstawionychwtrzechostatnichpodrozdziałach,możemy
terazzbudowaćsterowanyskładniątranslatortłumaczącywyrażeniaarytme-
tycznenaformępostfiksową,jakodziałającyprogramwJavie.Abyzachować
rozsądniemałerozmiarytegopoczątkowegoprogramu,zaczniemyodwyrażeń
zawierającychtylkocyfryrozdzielanedwuargumentowymiznakamiplusiminus.
Późniejwpodrozdziale2.6rozszerzymytenprogramotłumaczeniewyrażeń,
którezawierająliczbywielocyfroweiinneoperatory.Wartoszczegółowoprze-
studiowaćtłumaczenietakichwyrażeń,gdyżpojawiająsięonejakokonstrukcje
bardzowielujęzykówprogramowania.
Schemattranslacjisterowanyskładniączęstosłużyjakospecyfikacjadla
translatora.Schematpokazanynarysunku2.21(powtórzonyzrysunku2.15)
definiujetłumaczenie,którebędziemychcieliwykonać.
Częstogramatyka,naktórejopartyjestdanyschemattranslacji,musizostać
zmodyfikowana,zanimbędziemożnająużyćdoanalizyprzywykorzystaniu
predykcyjnegoparsera.Wszczególności,gramatykaodpowiadającaschematowi
zrysunku2.21jestlewostronnierekurencyjna,ajakwidzieliśmywpoprzednim
podrozdziale,predykcyjnyparserniemożepoprawnieobsłużyćtakiejgramatyki.