Главная » Просмотр файлов » В.А. Серебряков, М.П. Галочкин и др. - Теория и реализация языков программирования (2006)

В.А. Серебряков, М.П. Галочкин и др. - Теория и реализация языков программирования (2006) (1134633), страница 17

Файл №1134633 В.А. Серебряков, М.П. Галочкин и др. - Теория и реализация языков программирования (2006) (В.А. Серебряков, М.П. Галочкин и др. - Теория и реализация языков программирования (2006)) 17 страницаВ.А. Серебряков, М.П. Галочкин и др. - Теория и реализация языков программирования (2006) (1134633) страница 172019-05-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 17)

 ïåðâîì ñëó÷àå ðàçâîðà÷èâàåì A ïî ñîîòâåòñòâóþùåìó ïðàâèëó, âî âòîðîì óäàëÿåì A èç ìàãàçèíà.Åñëè íà âåðõóøêå ìàãàçèíà òåðìèíàëüíûé ñèìâîë, òîìîæíî óäàëèòü âñå òåðìèíàëüíûå ñèìâîëû ñ âåðõóøêè ìàãàçèíà âïëîòü äî ïåðâîãî (ñâåðõó) íåòåðìèíàëüíîãî ñèìâîëà è ïðîäîëæàòü òàê, êàê ýòî áûëî îïèñàíî âûøå.4.6. Ðàçáîð ñíèçó-ââåðõ òèïà ñäâèãñâ¼ðòêà4.6.1. Îñíîâà ïðîöåññå ðàçáîðà ñíèçó-ââåðõ òèïà ñäâèã-ñâ¼ðòêàñòðîèòñÿ äåðåâî ðàçáîðà âõîäíîé öåïî÷êè, íà÷èíàÿ ñ ëèñòüåâ (ñíèçó) ê êîðíþ (ââåðõ). Ýòîò ïðîöåññ ìîæíî ðàññìàòðèâàòü êàê ¾ñâ¼ðòêó¿ öåïî÷êè w ê íà÷àëüíîìó ñèìâîëó ãðàììàòèêè.

Íà êàæäîì øàãå ñâ¼ðòêè ïîäöåïî÷êà, êîòîðóþ ìîæíî ñîïîñòàâèòü ïðàâîé ÷àñòè íåêîòîðîãî ïðàâèëà âûâîäà, çàìåíÿåòñÿ ñèìâîëîì ëåâîé ÷àñòè ýòîãî ïðàâèëà âûâîäà, è åñëè íà êàæäîì øàãå âûáèðàåòñÿ ïðàâèëüíàÿïîäöåïî÷êà, òî â îáðàòíîì ïîðÿäêå ïðîñëåæèâàåòñÿ ïðàâîñòîðîííèé âûâîä (ðèñ. 4.7). Çäåñü êî âõîäíîé öåïî÷êå, òàêæå êàê è ïðè àíàëèçå LL(1)-ãðàììàòèê, ïðèïèñàí êîíöåâîéìàðêåð $.Îñíîâîé öåïî÷êè íàçûâàåòñÿ ïîäöåïî÷êà ñåíòåíöèàëüíîé ôîðìû, êîòîðàÿ ìîæåò áûòü ñîïîñòàâëåíà ïðàâîé ÷àñòè íåêîòîðîãî ïðàâèëà âûâîäà, ñâ¼ðòêà ïî êîòîðîìó ê ëå-112Ãëàâà 4.

Ñèíòàêñè÷åñêèé àíàëèç666; ;‡‡‡‡‡‡‡‡‡‡‡‡‡‡D‡‡‡<<‡‡‡‡‡‡D‡‡‡‡‡‡‡‡‡=D‡‡‡‡‡‡‡‡‡E‡‡‡‡‡Ðèñ. 4.7.âîé ÷àñòè ïðàâèëà ñîîòâåòñòâóåò îäíîìó øàãó â îáðàùåíèèïðàâîñòîðîííåãî âûâîäà. Ñàìàÿ ëåâàÿ ïîäöåïî÷êà, êîòîðàÿñîïîñòàâëÿåòñÿ ïðàâîé ÷àñòè íåêîòîðîãî ïðàâèëà âûâîäàA → γ , íå îáÿçàòåëüíî ÿâëÿåòñÿ îñíîâîé, ïîñêîëüêó ñâ¼ðòêà ïî ïðàâèëó A → γ ìîæåò äàòü öåïî÷êó, êîòîðàÿ íå ìîæåòáûòü ñâåäåíà ê àêñèîìå.Ôîðìàëüíî, îñíîâà ïðàâîé ñåíòåíöèàëüíîé ôîðìû z ýòî ïðàâèëî âûâîäà A → γ è ïîçèöèÿ â z , â êîòîðîé ìîæåòáûòü íàéäåíà öåïî÷êà γ òàêèå, ÷òî â ðåçóëüòàòå çàìåíûγ íà A ïîëó÷àåòñÿ ïðåäûäóùàÿ ñåíòåíöèàëüíàÿ ôîðìà âïðàâîñòîðîííåì âûâîäå z . Òàê, åñëè S ⇒∗r αAβ ⇒r αγβ ,òî A → γ â ïîçèöèè, ñëåäóþùåé çà α, ýòî îñíîâà öåïî÷êè αγβ .

Ïîäöåïî÷êà β ñïðàâà îò îñíîâû ñîäåðæèò òîëüêîòåðìèíàëüíûå ñèìâîëû.Âîîáùå ãîâîðÿ, ãðàììàòèêà ìîæåò áûòü íåîäíîçíà÷íîé,ïîýòîìó íå åäèíñòâåííûì ìîæåò áûòü ïðàâîñòîðîííèé âûâîä αγβ è íå åäèíñòâåííîé ìîæåò áûòü îñíîâà. Åñëè ãðàììàòèêà îäíîçíà÷íà, òî êàæäàÿ ïðàâàÿ ñåíòåíöèàëüíàÿ ôîðìà ãðàììàòèêè èìååò â òî÷íîñòè îäíó îñíîâó.

Çàìåíà îñíîâû â ñåíòåíöèàëüíîé ôîðìå íà íåòåðìèíàë ëåâîé ÷àñòè íàçûâàåòñÿ îòñå÷åíèåì îñíîâû. Îáðàùåíèå ïðàâîñòîðîííåãîâûâîäà ìîæåò áûòü ïîëó÷åíî ñ ïîìîùüþ ïîâòîðíîãî ïðèìåíåíèÿ îòñå÷åíèÿ îñíîâû, íà÷èíàÿ ñ èñõîäíîé öåïî÷êè w.4.6. Ðàçáîð ñíèçó-ââåðõ òèïà ñäâèã-ñâ¼ðòêà113Åñëè w ñëîâî â ðàññìàòðèâàåìîé ãðàììàòèêå, òî w = αn ,ãäå αn n-ÿ ïðàâàÿ ñåíòåíöèàëüíàÿ ôîðìà åù¼ íåèçâåñòíîãî ïðàâîãî âûâîäà S = α0 ⇒r α1 ⇒r . . .⇒r αn−1 ⇒r αn = w.×òîáû âîññòàíîâèòü ýòîò âûâîä â îáðàòíîì ïîðÿäêå, âûäåëÿåì îñíîâó γn â αn è çàìåíÿåì γn íà ëåâóþ ÷àñòü íåêîòîðîãî ïðàâèëà âûâîäà An → γn , ïîëó÷àÿ (n − 1)-þ ïðàâóþñåíòåíöèàëüíóþ ôîðìó αn−1 .

Çàòåì ïîâòîðÿåì ýòîò ïðîöåññ, òî åñòü âûäåëÿåì îñíîâó γn−1 â αn−1 è ñâîðà÷èâàåìýòó îñíîâó, ïîëó÷àÿ ïðàâóþ ñåíòåíöèàëüíóþ ôîðìó αn−2 .Åñëè, ïîâòîðÿÿ ýòîò ïðîöåññ, ìû ïîëó÷àåì ïðàâóþ ñåíòåíöèàëüíóþ ôîðìó, ñîñòîÿùóþ òîëüêî èç íà÷àëüíîãî ñèìâîëàS , òî îñòàíàâëèâàåìñÿ è ñîîáùàåì îá óñïåøíîì çàâåðøåíèèðàçáîðà.

Îáðàùåíèå ïîñëåäîâàòåëüíîñòè ïðàâèë, èñïîëüçîâàííûõ â ñâ¼ðòêàõ, åñòü ïðàâûé âûâîä âõîäíîé ñòðîêè.Òàêèì îáðàçîì, ãëàâíàÿ çàäà÷à àíàëèçàòîðà òèïà ñäâèãñâ¼ðòêà ýòî âûäåëåíèå è îòñå÷åíèå îñíîâû.4.6.2. LR(1)-àíàëèçàòîðû íàçâàíèè LR(1) ñèìâîë L óêàçûâàåò íà òî, ÷òî âõîäíàÿöåïî÷êà ÷èòàåòñÿ ñëåâà-íàïðàâî, R íà òî, ÷òî ñòðîèòñÿïðàâûé âûâîä, íàêîíåö, 1 óêàçûâàåò íà òî, ÷òî àíàëèçàòîðâèäèò îäèí ñèìâîë íåïðî÷èòàííîé ÷àñòè âõîäíîé öåïî÷êè.LR(1)-àíàëèç ïðèâëåêàòåëåí ïî íåñêîëüêèì ïðè÷èíàì: LR(1)-àíàëèç íàèáîëåå ìîùíûé ìåòîä àíàëèçà áåçâîçâðàòîâ òèïà ñäâèã-ñâ¼ðòêà; LR(1)-àíàëèç ìîæåò áûòü ðåàëèçîâàí äîâîëüíî ýôôåêòèâíî; LR(1)-àíàëèçàòîðû ìîãóò áûòü ïîñòðîåíû äëÿ ïðàêòè÷åñêè âñåõ êîíñòðóêöèé ÿçûêîâ ïðîãðàììèðîâàíèÿ; êëàññ ãðàììàòèê, êîòîðûå ìîãóò áûòü ïðîàíàëèçèðîâàíû LR(1)-ìåòîäîì, ñòðîãî âêëþ÷àåò êëàññ ãðàììàòèê, êîòîðûå ìîãóò áûòü ïðîàíàëèçèðîâàíû ïðåäñêàçûâàþùèìè àíàëèçàòîðàìè (ñâåðõó-âíèç òèïà LL(1)).Ñõåìàòè÷åñêè ñòðóêòóðà LR(1)-àíàëèçàòîðà èçîáðàæåíà íà ðèñ.

4.8. Àíàëèçàòîð ñîñòîèò èç âõîäíîé ëåíòû, âûõîäíîé ëåíòû, ìàãàçèíà, óïðàâëÿþùåé ïðîãðàììû è òàáëèöû àíàëèçà (LR(1)-òàáëèöû), êîòîðàÿ èìååò äâå ÷àñòè 114Ãëàâà 4. Ñèíòàêñè÷åñêèé àíàëèçôóíêöèþ äåéñòâèé (Action) è ôóíêöèþ ïåðåõîäîâ (Goto).Óïðàâëÿþùàÿ ïðîãðàììà îäíà è òà æå äëÿ âñåõ LR(1)àíàëèçàòîðîâ, ðàçíûå àíàëèçàòîðû îòëè÷àþòñÿ òîëüêî òàáëèöàìè àíàëèçà.Àíàëèçàòîð ÷èòàåò ñèìâîëû íà âõîäíîé ëåíòå ïî îäíîìó çà øàã.  ïðîöåññå àíàëèçà èñïîëüçóåòñÿ ìàãàçèí, âêîòîðîì õðàíÿòñÿ ñòðîêè âèäà S0 X1 S1 X2 S2 . . .

Xm Sm (Sm âåðõóøêà ìàãàçèíà). Êàæäûé Xi ñèìâîë ãðàììàòèêè(òåðìèíàëüíûé èëè íåòåðìèíàëüíûé), à Si ñèìâîë ñîñòîÿíèÿ.Çàìåòèì, ÷òî ñèìâîëû ãðàììàòèêè (ëèáî ñèìâîëû ñîñòîÿíèé) íå îáÿçàòåëüíî äîëæíû ðàçìåùàòüñÿ â ìàãàçèíå.Îäíàêî, èõ èñïîëüçîâàíèå îáëåã÷àåò ïîíèìàíèå ïîâåäåíèÿLR-àíàëèçàòîðà.FZ]Zabg<oh^6P;P D DL DQ /5ZgZebaZlhj<uoh^6P;P6 $FWLRQ*RWRÐèñ. 4.8.Ýëåìåíò ôóíêöèè äåéñòâèé Action[Sm , ai ] äëÿ ñèìâîëàñîñòîÿíèÿ Sm è âõîäà ai ∈ T ∪ {$}, ìîæåò èìåòü îäíî èç÷åòûð¼õ çíà÷åíèé:1) shift S (ñäâèã), ãäå S ñèìâîë ñîñòîÿíèÿ,2) reduce A→γ (ñâ¼ðòêà ïî ïðàâèëó ãðàììàòèêè A→γ ),3) accept (äîïóñê),4) error (îøèáêà).4.6. Ðàçáîð ñíèçó-ââåðõ òèïà ñäâèã-ñâ¼ðòêà115Ýëåìåíò ôóíêöèè ïåðåõîäîâ Goto[Sm , A] äëÿ ñèìâîëàñîñòîÿíèÿ Sm è âõîäà A ∈ N , ìîæåò èìåòü îäíî èç äâóõçíà÷åíèé:1) S , ãäå S ñèìâîë ñîñòîÿíèÿ,2) error (îøèáêà).Êîíôèãóðàöèåé LR(1)- àíàëèçàòîðà íàçûâàåòñÿ ïàðà,ïåðâàÿ êîìïîíåíòà êîòîðîé ñîäåðæèìîå ìàãàçèíà, à âòîðàÿ íåïðîñìîòðåííûé âõîä:(S0 X1 S1 X2 S2 . .

. Xm Sm , ai ai+1 . . . an $)Ýòà êîíôèãóðàöèÿ ñîîòâåòñòâóåò ïðàâîé ñåíòåíöèàëüíîé ôîðìåX1 X2 . . . Xm ai ai+1 . . . anÏðåôèêñû ïðàâûõ ñåíòåíöèàëüíûõ ôîðì, êîòîðûå ìîãóò ïîÿâèòüñÿ â ìàãàçèíå àíàëèçàòîðà, íàçûâàþòñÿ àêòèâíûìè ïðåôèêñàìè. Îñíîâà ñåíòåíöèàëüíîé ôîðìû âñåãäàðàñïîëàãàåòñÿ íà âåðõóøêå ìàãàçèíà. Òàêèì îáðàçîì, àêòèâíûé ïðåôèêñ ýòî òàêîé ïðåôèêñ ïðàâîé ñåíòåíöèàëüíîé ôîðìû, êîòîðûé íå ïåðåõîäèò ïðàâóþ ãðàíèöó îñíîâûýòîé ôîðìû.Êîãäà àíàëèçàòîð íà÷èíàåò ðàáîòó, â ìàãàçèíå íàõîäèòñÿ òîëüêî ñèìâîë íà÷àëüíîãî ñîñòîÿíèÿ S0 , íà âõîäíîé ëåíòå àíàëèçèðóåìàÿ öåïî÷êà ñ ìàðêåðîì êîíöà.Êàæäûé î÷åðåäíîé øàã àíàëèçàòîðà îïðåäåëÿåòñÿ òåêóùèì âõîäíûì ñèìâîëîì ai è ñèìâîëîì ñîñòîÿíèÿ íà âåðõóøêå ìàãàçèíà Sm ñëåäóþùèì íèæå îáðàçîì.Ïóñòü LR(1)-àíàëèçàòîð íàõîäèòñÿ â êîíôèãóðàöèè(S0 X1 S1 X2 S2 .

. . Xm Sm , ai ai+1 . . . an $)Àíàëèçàòîð ìîæåò ïðîäåëàòü îäèí èç ñëåäóþùèõ øàãîâ:1. Åñëè Action[Sm , ai ] = shift S , òî àíàëèçàòîð âûïîëíÿåò ñäâèã, ïåðåõîäÿ â êîíôèãóðàöèþ(S0 X1 S1 X2 S2 . . . Xm Sm ai S, ai+1 . . . an $)116Ãëàâà 4. Ñèíòàêñè÷åñêèé àíàëèçÒî åñòü, â ìàãàçèí ïîìåùàþòñÿ âõîäíîé ñèìâîë ai èñèìâîë ñîñòîÿíèÿ S , îïðåäåëÿåìûé Action[Sm , ai ]. Òåêóùèì âõîäíûì ñèìâîëîì ñòàíîâèòñÿ ai+1 .2. Åñëè Action[Sm , ai ] = reduce A → γ , òî àíàëèçàòîðâûïîëíÿåò ñâ¼ðòêó, ïåðåõîäÿ â êîíôèãóðàöèþ(S0 X1 S1 X2 S2 .

. . Xm−r Sm−r AS, ai ai+1 . . . an $)ãäå S = Goto[Sm−r , A] è r äëèíà γ , ïðàâîé ÷àñòèïðàâèëà âûâîäà.Àíàëèçàòîð ñíà÷àëà óäàëÿåò èç ìàãàçèíà 2r ñèìâîëîâ(r ñèìâîëîâ ñîñòîÿíèÿ è r ñèìâîëîâ ãðàììàòèêè), òàê÷òî íà âåðõóøêå îêàçûâàåòñÿ ñîñòîÿíèå Sm−r . Çàòåìàíàëèçàòîð ïîìåùàåò â ìàãàçèí A ëåâóþ ÷àñòü ïðàâèëà âûâîäà, è S ñèìâîë ñîñòîÿíèÿ, îïðåäåëÿåìûéGoto[Sm−r , A]. Íà øàãå ñâ¼ðòêè òåêóùèé âõîäíîé ñèìâîë íå ìåíÿåòñÿ.

Äëÿ LR(1)-àíàëèçàòîðîâ ïîñëåäîâàòåëüíîñòü ñèìâîëîâ ãðàììàòèêè Xm−r+1 . . . Xm , óäàëÿåìûõ èç ìàãàçèíà, âñåãäà ñîîòâåòñòâóåò γ ïðàâîé÷àñòè ïðàâèëà âûâîäà, ïî êîòîðîìó äåëàåòñÿ ñâ¼ðòêà.Ïîñëå îñóùåñòâëåíèÿ øàãà ñâ¼ðòêè ãåíåðèðóåòñÿ âûõîä LR(1)-àíàëèçàòîðà, òî åñòü èñïîëíÿþòñÿ ñåìàíòè÷åñêèå äåéñòâèÿ, ñâÿçàííûå ñ ïðàâèëîì, ïî êîòîðîìóäåëàåòñÿ ñâ¼ðòêà, íàïðèìåð, ïå÷àòàþòñÿ íîìåðà ïðàâèë, ïî êîòîðûì äåëàåòñÿ ñâ¼ðòêà.Çàìåòèì, ÷òî ôóíêöèÿ Goto òàáëèöû àíàëèçà, ïîñòðîåííàÿ ïî ãðàììàòèêå G, ôàêòè÷åñêè ïðåäñòàâëÿåò ñîáîé ôóíêöèþ ïåðåõîäîâ äåòåðìèíèðîâàííîãî êîíå÷íîãî àâòîìàòà, ðàñïîçíàþùåãî àêòèâíûå ïðåôèêñû G.3. Åñëè Action[Sm , ai ] = accept, òî ðàçáîð óñïåøíî çàâåðø¼í.4.

Åñëè Action[Sm , ai ] = error, òî àíàëèçàòîð îáíàðóæèë îøèáêó, è âûïîëíÿþòñÿ äåéñòâèÿ ïî äèàãíîñòèêåè âîññòàíîâëåíèþ.Ïðèìåð 4.10. Ðàññìîòðèì ãðàììàòèêó àðèôìåòè÷åñêèõâûðàæåíèé G = ({E, T, F }, {id, +, ∗}, P, E) ñ ïðàâèëàìè:4.6. Ðàçáîð ñíèçó-ââåðõ òèïà ñäâèã-ñâ¼ðòêà117(1) E → E + T(2) E → T(3) T → T ∗ F(4) T → F(5) F → idÍà ðèñ. 4.9 èçîáðàæåíû ôóíêöèè Action è Goto, îáðàçóþùèå LR(1)-òàáëèöó äëÿ ýòîé ãðàììàòèêè. Ýëåìåíò Si ôóíêöèèAction îçíà÷àåò ñäâèã è ïîìåùåíèå â ìàãàçèí ñîñòîÿíèÿ ñ íîìåðîì i, Rj ñâ¼ðòêó ïî ïðàâèëó íîìåð j , acc äîïóñê, ïóñòàÿêëåòêà îøèáêó.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее