Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
46
ROZDZIAŁ2.PROSTYTRANSLATORSTEROWANYSKŁADNIĄ
składającesięjedyniezprzypisania
i=i+1;
.Prawagałąźreprezentujewa-
runek
a[i]<v
.Implementacjadrzewskładniowychzostanieprzedstawiona
wpodrozdziale2.8.
Innatypowapośredniareprezentacjapokazananarysunku2.4(b)tosekwen-
cjantrójadresowych”instrukcji;bardziejkompletnyprzykładwidocznyjestna
rysunku2.2.Taformakodupośredniegobierzeswąnazwęzinstrukcjiwpostaci
x
=
yopZ
,gdzie
op
jestoperatorembinarnym,
y
i
Z
adresamioperandów,
x
jestzaśadresem,wktórymmabyćumieszczonywyniktejoperacji.Trójadresowa
instrukcjaobsługujeconajwyżejjednąoperacjętypowoobliczenie,porównanie
lubrozgałęzienie.
WDodatkuAzbierzemyrazemwszystkietechnikiprzedstawionewtym
rozdzialewceluzbudowaniafront-endukompilatorawJavie.Front-endtłumaczy
instrukcjeźródłowenainstrukcje(rozkazy)poziomuasemblera.
2.2.Definiowanieskładni
Wtympunkciewprowadzimynotacjęngramatykębezkontekstową”lub
poprostungramatykę”–służącądospecyfikowaniaskładnijęzyka.Wcałej
tejksiążceorganizacjafront-endówkompilatoraopartajestnagramatykach.
Gramatykawnaturalnysposóbopisujehierarchicznąstrukturęwiększości
konstrukcjijęzykówprogramowania.Naprzykładinstrukcjaif-elsewJaviemoże
miećformę
if(wyrażenie)instrukcjaelseinstrukcja
Instrukcjaif-elsejestzłączeniemsłowakluczowego
if
,otwierającegonawiasu,
wyrażenialogicznego,zamykającegonawiasu,jakiejśinstrukcji,słowakluczowego
else
orazinnejinstrukcji.Jeśliużyjemyzmiennejexprdooznaczeniawyrażenia
orazzmiennejstmtdooznaczeniainstrukcji,wówczastaregułastrukturalna
możezostaćprzedstawionawnastępującysposób:
stmtif(expr)stmtelsestmt
Wzapisietymstrzałkęnależyczytaćjakonmożemiećpostać”.Takareguła
nazywanajestprodukcją.Wprodukcjiniepodzielneelementyleksykalne,takie
jaksłowokluczoweiforaznawiasy,nazywanesymbolamiterminalnymi.
Zmienne,takiejakexpristmt,reprezentująsekwencjesymboliterminalnych
inazywanesymbolaminieterminalnymi.
2.2.1.Definicjagramatyki
Gramatykębezkontekstowąbudujączterykomponenty:
1.
Skończonyzbiórsymboliterminalnych(wskrócieterminali),niekiedy
określanychmianemntokenów”
.Symboleterminalneelementarnymi
symbolamijęzykadefiniowanegoprzezgramatykę.