Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2.2.DEFINIOWANIESKŁADNI
53
list
list
-
digit
letter
list
-
digit
2
a
digit
5
9
right
=
right
letter
=
right
b
letter
c
RYSUNEK
207:Drzewawyprowadzaniadlagramatyk
złącznościąlewo-iprawostronną
Ciągitakiejak
a=b=c
zoperatoremprawostronniełącznymsągenerowane
przeznastępującągramatykę:
string→string+string|string-string|0|1|2|3|4|5|6|7|8|9
Różnicęmiędzydrzewemwyprowadzaniadlaoperatoralewostronniełącznego,
takiegojak–,atymdlaoperatoraprawostronniełącznego,jak=,pokazuje
rysunek2.7.Zauważmy,żedrzewowyprowadzaniadla
9-5-2
rośniewdółwlewą
stronę,podczasgdydrzewodlaa=b=crośniewdółwprawo.
2.2.G.Priorytetyoperatorów
Rozważmywyrażenie
9+5∗2
.Istniejądwiemożliweinterpretacjetegowyra-
żenia:
(9+5)∗2
lub
9+(5∗2)
.Regułyłącznościdla
+
i
∗
stosująsiędowy-
stępowaniategosamegooperatora,zatemniepozwalająonerozstrzygnąćtej
niejednoznaczności.Koniecznejestzdefiniowanieregułokreślającychwzględne
priorytetyoperatorów,gdywwyrażeniuwystępujewięcejniżjedenrodzaj
operatora.
Mówimy,że
∗
mawyższypriorytetniż
+
,jeślidziałanie
∗
należywykonać
wcześniejniżdziałanie
+
.Wzwykłejarytmetycemnożenieidzieleniemają
wyższypriorytetniżdodawanieiodejmowanie.Dlategoargumentemoperatora
∗
zarównowwyrażeniu
9+5∗2
,jaki
9∗5+2
–będzie5;wyrażeniatesąodpowiednio
równoważnenapisom9+(5∗2)oraz(9∗5)+2.
Przykład2.6:
Gramatykawyrażeńarytmetycznychmożezostaćskonstru-
owananapodstawietabelipokazującejłącznośćipriorytetyoperatorów.Za-
cznijmyodczterechpodstawowychdziałańarytmetycznychitabelipriorytetów
pokazującejoperatorywkolejnościrosnącegopriorytetu.Operatorywtym
samymwierszumajątakąsamąłącznośćipriorytet:
łącznośćlewostronna:
łącznośćlewostronna:
+-
*/