Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
48
ROZDZIAŁ2.PROSTYTRANSLATORSTEROWANYSKŁADNIĄ
Przykład2.1:
Wieleprzykładówwtymrozdzialeużywawyrażeńzłożonych
zcyfrorazznakówplusiminus,naprzykładciągi
9-5+2
,
3-1
lub
7
.Ponieważ
znakipluslubminusmusząwystępowaćmiędzydwiemacyframi,będziemyod-
nosićsiędotakichwyrażeńjakonlistcyfrrozdzielanychznakamipluslubminus”
.
Poniższagramatykaopisujeskładniętakichwyrażeń.Regułyprodukcjito:
listlist+digit
listlist-digit
listdigit
digit0|1|2|3|4|5|6|7|8|9
(2.1)
(2.2)
(2.3)
(2.4)
Ciałatrzechprodukcjiznieterminalnymilistamijakonagłówkamimożna
zgrupowaćwrównoważnyzapis:
list
list+digit|list-digit|digit
Zgodnieznasząkonwencją,terminalamitejgramatykisymbole
+-0123456789
Nieterminaletopisanekursywąnazwylistorazdigit,przyczymlistjestsymbolem
startowym,gdyżjejprodukcjazostałapodanajakopierwsza.
Będziemymówić,żeprodukcjajestprodukcjądladanegonieterminala,jeśli
nieterminaltenstanowinagłówek(lewąstronę)tejprodukcji.Ciągterminalijest
sekwencjązerolubwięcejterminali.Ciągzawierającyzeroterminali,zapisany
jakoć,nazywanyjestpustymciągiem2.
2.2.2.Wyprowadzenia
Gramatykawyprowadzaciągisymboli,zaczynającodsymbolustartowegoiko-
lejnozastępującsymbolnieterminalnyciałemprodukcjidlategonieterminala.
Wszystkieciągisymboliterminalnych,któremogązostaćwyprowadzonezsym-
bolustartowego,tworząjęzykzdefiniowanyprzezgramatykę.
Przykład2.2:
Językzdefiniowanyprzezgramatykęzprzykładu2.1składa
sięzlistcyfrporozdzielanychznakamiplusorazminus.Dziesięćprodukcjidla
nieterminalnegosymboludigitpozwalazastąpićtennieterminaldowolnymzter-
minaliod0do9.Zgodniezprodukcją(2.3)pojedynczacyfrasamazsiebiejest
listą.Produkcje(2.1)oraz(2.2)wyrażajązasadę,żedowolnalistauzupełniona
oznakpluslubminusorazkolejnącyfrętworzynowąlistę.
Produkcjeod(2.1)do(2.4)towszystko,czegopotrzebujemy,abyzdefinio-
waćpożądanyjęzyk.Naprzykładmożemywydedukować,że
9-5+2
jestlistą,
napodstawienastępującegorozumowania:
(a)9jestlistnapodstawieprodukcji(2.3),gdyż9jestdigit.
2
Technicznierzeczujmując,
6
możebyćciągiemodługościzerosymbolizdowolnego
alfabetu(zbiorusymboli).