Вы находитесь на странице: 1из 23

Part I

Âîïðîñû ê çà÷åòó
1. Ññûëî÷íûé òèï äàííûõ. Òèïû óêàçàòåëåé. Äåéñòâèÿ íàä óêàçàòåëÿìè.

2. Ñïèñêè. Êëàññèôèêàöèÿ ñïèñêîâ.

3. Ðåêóðñèÿ. Ðåêóðñèâíûå ïðîöåäóðû. Ñõåìû ðåêóðñèâíîé ïðîöåäóðû.

4. Äåðåâüÿ. Îñíîâíûå îïðåäåëåíèÿ. Áèíàðíîå äåðåâî. Àëãîðèòì îáõîäà.

5. Ñáàëàíñèðîâàííûå äåðåâüÿ. Äèõîòîìè÷åñêèå äåðåâüÿ. Àëãîðèòì ïîñòðîåíèÿ.


ÀÂË - äåðåâüÿ.
6. ßçûê. Àëôàâèò. Öåïî÷êà. Ãðàììàòèêè ÿçûêà. Êëàññèôèêàöèÿ ãðàììàòèê
ïî Õîëìñêîìó.

7. Ïðåäñòàâëåíèå àâòîìàòíîé ãðàììàòèêè â âèäå ãðàôîâ. Äåòåðìèíèðîâàííûå


ôîðìû. Àëãîðèòì ïîñòðîåíèÿ àíàëèçàòîðà.

8. Ðàñïîçíàâàòåëü - îñíîâíûå ïîíÿòèÿ è àëãîðèòì ðàáîòû.


9. Àëãîðèòì ïåðåõîäà îò íå äåòåðìèíèðîâàííîãî àâòîìàòà ê äåòåðìèíèðîâàííîìó.

10. Ýêâèâàëåíòíûå ïðåîáðàçîâàíèÿ.

11. Òåîðåìà îá îáùåì âèäå àâòîìàòíûõ è ÊÑ ÿçûêîâ è èõ ñëåäñòâèÿ.

12. Îïåðàöèè íàä ÿçûêàìè è òåîðåìà îá îïåðàöèÿõ íàä àâòîìàòíûìè è ÊÑ


ÿçûêàìè.

13. Ìåòîäû àíàëèçà ÊÑ ÿçûêîâ. Ãðàììàòèêè ïðåäøåñòâîâàíèÿ.

14. ÏÎËÈÇ. Àëãîðèòì Çàìåëüñîíà-Áàóýðà.

15. Îñíîâíûå ôàçû òðàíñëÿöèè.

×àñòü II

Áèëåòû
1 Ññûëî÷íûé òèï äàííûõ. Òèïû óêàçàòåëåé. Äåéñòâèÿ
íàä óêàçàòåëÿìè.

1.1 Ññûëî÷íûé òèï äàííûõ

Èäåíòèôèêàöèÿ îáúåêòà - îïðåäåëåíèå ìåñòîíàõîæäåíèÿ îáúåêòà â ïàìÿòè


ÝÂÌ è ïîëó÷åíèå äîñòóïà ê çíà÷åíèþ ñâîéñòâ îáúåêòà.
Ñóùåñòâóåò äâà âèäà èäåíòèôèêàöèè:

1
1. Èìåíîâàíèå

2. Óêàçàíèå

Ïðè èìåíîâàíèè èìÿ îáúåêòà ñâÿçûâàåòñÿ ñ ýëåìåíòîì õðàíåíèÿ íà ýòàïå


êîìïèëÿöèè. Íà ýòàïå âûïîëíåíèÿ ñâÿçü íå ìîæåò áûòü èçìåíåíà. Íàçíà÷åííîå
èìÿ âñåãäà äàåò äîñòóï ê îäíîìó è òîìó æå ýëåìåíòó õðàíåíèÿ.
Èìåíîâàòüñÿ ìîãó îòäåëüíûå ñâîéñòâà îáúåêòîâ. Òàêîé èäåíòèôèêàòîð
íàçûâàåòñÿ êâàëèôèöèðîâàííûì èäåíòèôèêàòîðîì èëè êâàëèäåíòîì. Äèñòàíöèåé
íàçûâàåòñÿ äëèíà ïóòè äî íóæíîãî ñâîéñòâà.
 ñëó÷àå, åñëè äèñòàíöèÿ äîñòóïà âåëèêà, òî ïðèìåíÿåòñÿ îïåðàòîð ïðèñîåäèíåíèÿ
with.
Äëÿ äîñòóïà ê ýëåìåíòàì ìàññèâà èñïîëüçóåòñÿ èíäåêñèðîâàííîå èëè óòî÷íåííîå
èìÿ.
Âòîðîé òèï èäåíòèôèêàöèè ñâÿçàí ñ èñïîëüçîâàíèåì ññûëî÷íîãî èëè óêàçàòåëüíîãî
òèïà. Ññûëî÷íûé òèï îïðåäåëÿåò îñîáûé òèï îáúåêòà, êàæäûé èç êîòîðûõ
îïðåäåëÿåò àäðåñ äðóãîãî îáúåêòà â ïàìÿòè ÝÂÌ.
 êà÷åñòâå òàêîãî îáúåêòà ìîæåò âûñòóïàòü óêàçàòåëü. Ñóùåñòâóåò ñïåöèàëüíàÿ
êîíñòàíòà, êîòîðàÿ îïðåäåëÿåò îñîáîå ïîëîæåíèå óêàçàòåëÿ, ïðè êîòîðîì îí
íå óêàçûâàåò íè íà îäèí èç ñóùåñòâóþùèõ îáúåêòîâ.
nil

1.2 Òèïû óêàçàòåëåé

Óêàçàòåëè ïîäðàçäåëÿþò íà òèïèçèðîâàííûå è íå òèïèçèðîâàííûå (ñâîáîäíûå).


Íå òèïèçèðîâàííûé óêàçàòåëü óêàçûâàåò íà îáúåêò, äîïóñêàþùèé ïðîèçâîëüíóþ
èíòåðïðåòàöèþ.
Îí ìîæåò àäðåñîâàòü ëþáóþ ÿ÷åéêó ïàìÿòè, íî íå ïîçâîëÿåò ïîëó÷èòü
äîñòóï ê ëþáîìó îáúåêòó. Îí èìååò òèï Pointer (â C - void*).
Òèïèçèðîâàííûé óêàçàòåëü âñåãäà îïðåäåëÿåòñÿ òàê, ÷òîáû óêàçûâàòü íà
îáúåêò òîãî òèïà, ñ êîòîðûì îí ñâÿçàí. Òàêîé óêàçàòåëü ïîçâîëÿåò ïîëó÷èòü
äîñòóï ê àòðèáóòàì îáúåêòà.
type myPointer = ^Integer;
Ïðèìå÷àíèå: ññûëî÷íûé òèï ìîæíî îïðåäåëèòü äî îïðåäåëåíèÿ òèïà, ñ
êîòîðûì îí ñâÿçàí.

1.3 Äåéñòâèÿ íàä óêàçàòåëÿìè

Ïðèñâàèâàíèå èëè óñòàíîâêà óêàçàòåëÿ


Ïðèñâàèâàíèå óêàçàòåëÿ äîëæíî áûòü ñîâìåñòèìûì.
Ñîâìåñòèìû ïî ïðèñâàèâàíèþ:

1. Òèïèçèðîâàííûå óêàçàòåëè îäíîãî è òîãî æå òèïà.

2. Òèïèçèðîâàííûå óêàçàòåëè è êîíñòàíòû.

3. Ñâîáîäíûå óêàçàòåëè è êîíñòàíòû.

2
4. Òèïèçèðîâàííûå óêàçàòåëè ëþáîãî òèïà è ñâîáîäíûå óêàçàòåëè.

Èíèöèàëèçèðîâàòü óêàçàòåëü ìîæíî äâóìÿ ñïîñîáàìè:

1. Êîíñòàíòîé nil.
2. Ïóòåì óñòàíîâêè óêàçàòåëÿ íà îáúåêò, àäðåñ êîòîðîãî çàðàíåå èçâåñòåí.

Ñðàâíåíèå óêàçàòåëåé
Óêàçàòåëè ìîæíî ñðàâíèâàòü òîëüêî íà ðàâåíñòâî è íåðàâåíñòâî. Ðàâíûìè
ñ÷èòàþòñÿ óêàçàòåëè, óêàçûâàþùèå íà îäèí è òîò æå îáúåêò è óêàçàòåëè,
ðàâíûå nil.
Ðàñêðûòèå ññûëêè (ðàçûìåíîâàíèå óêàçàòåëåé)
Äîñòóï ê îáúåêòàì ÷åðåç òèïèçèðîâàííûé óêàçàòåëü îñóùåñòâëÿåòñÿ ñ
èñïîëüçîâàíèåì åãî èìåíè è îïåðàòîðà ^.
Êëàññû ïàìÿòè

1. Ñòàòè÷åñêàÿ

2. Àâòîìàòè÷åñêàÿ

3. Äèíàìè÷åñêàÿ

Ñòàòè÷åñêàÿ ïàìÿòü âûäåëÿåòñÿ íà ôàçå òðàíñëÿöèè è íàõîäèòñÿ â íàøåì


âëàäåíèè âî âðåìÿ ðàáîòû ïðîãðàììû.
Àâòîìàòè÷åñêàÿ âûäåëÿåòñÿ â îáëàñòè ñèñòåìíîãî ñòåêà è èñïîëüçóåòñÿ
äëÿ ðàçìåùåíèÿ ôîðìàëüíûõ ïàð è ëîêàëüíûõ ïåðåìåííûõ ïðîöåäóð è ôóíêöèé.
Äèíàìè÷åñêàÿ ïàìÿòü âûäåëÿåòñÿ è îñâîáîæäàåòñÿ ïî ÿâíîìó çàïðîñó èç
ïðîãðàììó. Ñîîòâåòñòâåííî, âðåìÿ æèçíè îáúåêòà òîæå îïðåäåëÿåò ïðîãðàììèñò.
Ðàáîòà ñ äèíàìè÷åñêîé ïàìÿòüþ
Äèíàìè÷åñêàÿ ïàìÿòü ðàñïîëàãàåòñÿ â îáëàñòè êó÷è è åå ðàáîòîé çàïðàâëÿåò
àäìèíèñòðàòîð êó÷è.
Çàïðîñû íà âûäåëåíèå äèíàìè÷åñêîé ïàìÿòè:
procedure GetMem (var P:Pointer;size:integer);
procedure New(var P:<òèïèçèðîâàííûé óêàçàòåëü>);
Çàïðîñû íà îñâîáîæäåíèå ïàìÿòè:
procedure FreeMem(var P:Pointer; size:integer);
procedure Dispose(var P: <òèïèçèðîâàííûé óêàçàòåëü>);
Îøèáêà ïðè ðàáîòå ñ äèíàìè÷åñêîé ïàìÿòüþ:

1. Íàêîïëåíèå ìóñîðà

2. Ìóñîðîì íàçûâàþò áëîêè ïàìÿòè, äîñòóï ê êîòîðûì âî âðåìÿ âûïîëíåíèÿ


ïðîãðàììû óòåðÿí, òàê ÷òî èñïîëüçîâàíèå ýòèõ áëîêîâ è âîçâðàò ïàìÿòè
â êó÷ó íåâîçìîæåí.

3
2 Ñïèñêè. Êëàññèôèêàöèÿ ñïèñêîâ.

Äèíàìè÷åñêîé ñòðóêòóðîé äàííûõ íàçûâàþò óïîðÿäî÷åííîå ìíîæåñòâî îáúåêòîâ,


ñîñòàâ êîòîðûõ ìîæåò èçìåíÿòüñÿ âî âðåìÿ âûïîëíåíèÿ ïðîãðàììû.
Îñíîâíûå îïåðàöèè

1. Äîñòóï ê îáúåêòó

2. Ìîäèôèêàöèÿ äèíàìè÷åñêîé ñòðóêòóðû

3. Âûäåëåíèå ïîäìíîæåñòâà äèíàìè÷åñêèõ ñòðóêòóð ïî íåêîòîðîìó ïðèçíàêó

4. Âûäåëåíèå ïîäìíîæåñòâà äèíàìè÷åñêèõ ñòðóêòóð â îïðåäåëåííîì ïîðÿäêå

Äîñòóï ê ýëåìåíòó ñòðóêòóðû îñóùåñòâëÿåòñÿ ñ ïîìîùüþ óêàçàòåëåé.


Ëèíåéíî-äèíàìè÷åñêèå ñòðóêòóðû äàííûõ(ñïèñêè)
Ëèíåéíûé ñïèñîê ïðåäñòàâëÿåò ñîáîé ïîñëåäîâàòåëüíîñòü n ≥ 0 óçëîâ X[1],X[2],...,X[n],
âàæíåéøåé ñòðóêòóðíîé îñîáåííîñòüþ êîòîðîé ÿâëÿåòñÿ òàêîå ðàñïîëîæåíèå
ýëåìåíòîâ ñïèñêà îäíè îòíîñèòåëüíî äðóãîãî, êàê áóäòî îíè íàõîäÿòñÿ íà
îäíîé ëèíèè. Èíà÷å ãîâîðÿ, â òàêîé ñòðóêòóðå äîëæíî ñîáëþäàòüñÿ óñëîâèå:
åñëè n > 0 è X[1] ÿâëÿåòñÿ ïåðâûì óçëîì, à X[n] - ïîñëåäíèì, òî k-é óçåë X[k]
ñëåäóåò çà X[k − 1] è ïðåäøåñòâóåò X [k + 1] äëÿ âñåõ 1 < k < n.
X[1] íàçûâàåòñÿ ãîëîâîé ñïèñêà.
X[n] íàçûâàåòñÿ õâîñòîì ñïèñêà.
Ñ ëèíåéíûìè ñïèñêàìè ìîãóò âûïîëíÿòüñÿ ñëåäóþùèå îïåðàöèè.

1. Ïîëó÷åíèå äîñòóïà ê k-ìó óçëó ñïèñêà äëÿ ïðîâåðêè èëè èçìåíåíèÿ åãî
ïîëåé.

2. Âñòàâêà íîâîãî óçëà ñðàçó ïîñëå èëè äî k-ãî óçëà.


3. Óäàëåíèå k-ãî óçëà.

4. Îáúåäèíåíèå â îäíîì ñïèñêå äâóõ èëè áîëåå ëèíåéíûõ ñïèñêîâ.

5. Ðàçáèåíèå íà äâà èëè áîëåå ëèíåéíûõ ñïèñêîâ.

6. Ñîçäàíèå êîïèè ëèíåéíîãî ñïèñêà.

7. Îïðåäåëåíèå êîëè÷åñòâà óçëîâ â ñïèñêå.

8. Ñîðòèðîâêà óçëîâ â ïîðÿäêå âîçðàñòàíèÿ çíà÷åíèÿ â îïðåäåëåííûõ ïîëÿõ


ýòèõ óçëîâ.

9. Ïîèñê óçëà ñ çàäàííûì çíà÷åíèå â íåêîòîðîì ïîëå.

Êëàññèôèêàöèÿ ñïèñêîâ:
Ïî ñïîñîáíîñòè äîáàâëÿòü ýëåìåíòû:

1. Ñïèñîê ïðîèçâîëüíîãî âèäà:


Âêëþ÷åíèå, èñêëþ÷åíèå è äîñòóï ìîæåò áûòü â ëþáîì ìåñòå ñïèñêà.

4
2. Ñòåê
Âêëþ÷åíèå â ãîëîâó, èñêëþ÷åíèå èç ãîëîâû.

3. Î÷åðåäü
Äîáàâëåíèå â õâîñò, âûõîä èç ãîëîâû.

4. Äåêà
Âêëþ÷åíèå â ãîëîâó\õâîñò, èñêëþ÷åíèå èç ãîëîâû\õâîñòà.

Ïî ÷èñëó ñâÿçåé ìåæäó îáúåêòàìè:

1. Îäíîñâÿçíûå ñïèñêè

2. Äâóñâÿçíûå ñïèñêè

3. Ìíîãîñâÿçíûå ñïèñêè

Ó îäíîñâÿçíûõ ñïèñêîâ êàæäûé ýëåìåíò èìååò îäíî èëè áîëåå èíôîðìàöèîííûõ


ïîëåé è åäèíñòâåííîå ïîëå ñâÿçè.
 íåöèêëè÷åñêèõ ñïèñêàõ ïîëå ñâÿçè ïîñëåäíåãî ýëåìåíòà ðàâíî nil, íî
åñëè ñïèñîê íå ñóùåñòâóåò, òî åãî çíà÷åíèå òîæå nil. Ó öèêëè÷åñêèõ ñïèñêîâ
ïîëå ñâÿçè ïîñëåäíåãî ýëåìåíòà óêàçûâàåò íà ãîëîâó.
Ãîëîâîé öèêëè÷åñêîãî ñïèñêà ÿâëÿåòñÿ ñïåöèàëüíûé ýëåìåíò, èíôîðìàöèîííîå
ïîëå êîòîðîãî íå èñïîëüçóåòñÿ.  îòëè÷èè îò íåöèêëè÷åñêèõ ñïèñêîâ, ñèòóàöèè
ñïèñîê íå ñóùåñòâóåò è ñïèñîê ïóñò ðàçëè÷íû.
Ïðåèìóùåñòâà öèêëè÷åñêèõ ñïèñêîâ:

1. Âêëþ÷åíèå, èñêëþ÷åíèå ýëåìåíòà âûïîëíÿåòñÿ åäèíîîáðàçíî, ò.ê. êàæäûé


ýëåìåíò èìååò óêàçàòåëü íà ïðåäûäóùèé è íà ñëåäóþùèé ýëåìåíò.

2. Îò ëþáîãî ýëåìåíòà ìîæíî äîñòè÷ü ëþáîãî ýëåìåíòà.

3. Ïðè ïîèñêå íåîáõîäèìî ïðîâåðÿòü óñëîâèå îäíîêðàòíîãî ïðîõîæäåíèÿ


ñïèñêà.

Äâóñâÿçíûå ñïèñêè
Êàæäûé ýëåìåíò äâóñâÿçíîãî ñïèñêà ñîäåðæèò óêàçàòåëü íà ñëåäóþùèé
è ïðåäûäóùèé ýëåìåíòû.
Äâóñâÿçíûå öèêëè÷åñêèé ñïèñêè èñïîëüçóþò äîïîëíèòåëüíûé ãîëîâíîé
ýëåìåíò. Îñîáåííîñòüþ äâóñâÿçíîãî öèêëè÷åñêîãî ñïèñêà ÿâëÿåòñÿ òî, ÷òî
äëÿ ëþáîãî ýëåìåíòà p:
pˆ.nextˆ.prev = p
pˆ.prevˆ.next = p
Îðòîãîíàëüíûå ñïèñêè - ñïèñêè, êàæäûé ýëåìåíò êîòîðûõ ìîæåò áûòü
âêëþ÷åí îäíîâðåìåííî â íåñêîëüêî ñïèñêîâ.
Òàêîé ñïèñîê ïîçâîëÿåò óïîðÿäî÷èòü ñïèñêè ïî ðàçëè÷íûì òðåáîâàíèÿì,
ò.å. îðãàíèçîâàòü ðàçëè÷íûå îòíîøåíèÿ ïðåäøåñòâîâàíèÿ.
Îíè ìîãóò áûòü îäíîñâÿçíûìè, äâóñâÿçíûìè è öèêëè÷åñêèìè.
Ðàçíîðîäíûå ñïèñêè - ñïèñêè, ó êîòîðûõ èíôîðìàöèîííûå ïîëÿ ýëåìåíòîâ
ìîãóò áûòü ðàçíûõ òèïîâ äàííûõ.

5
3 Ðåêóðñèÿ. Ðåêóðñèâíûå ïðîöåäóðû. Ñõåìû ðåêóðñèâíîé
ïðîöåäóðû.

Ðåêóðñèåé íàçûâàåòñÿ ìåòîä îïðåäåëåíèÿ ìíîæåñòâà èëè ïðîöåññà â òåðìèíàõ


ñàìîãî ñåáÿ. Ðåêóðñèâíîå îïðåäåëåíèå ñîäåðæèò äâå ÷àñòè:

1. Áàçèñíàÿ ÷àñòü, êîòîðàÿ äàåò îïðåäåëåíèå ôèêñèðîâàííîé ãðóïïå îáúåêòîâ.

2. Ðåêóðñèâíàÿ ÷àñòü. Çàïèñûâàåòñÿ òàêèì îáðàçîì, ÷òîáû ïðè öåïî÷êå


ïîâòîðíûõ ïðèìåíåíèé îíà ñâîäèëàñü ê áàçèñíîé ÷àñòè.

Èòåðàòèâíàÿ ñõåìà îðãàíèçàöèè âû÷èñëèòåëüíûõ ïðîöåññîâ ðåàëèçóåòñÿ ÷åðåç


èòåðàòèâíî âû÷èñëèìûé öèêë (while).
Âèäû ðåêóðñèâíûõ àëãîðèòìîâ.
Íå âñåãäà ðåêóðñèÿ ìîæåò áûòü çàìåíåíà èòåðàöèåé.
Ðåêóðñèâíàÿ ïðîöåäóðà - ïðîöåäóðà, êîòîðàÿ îáðàùàåòñÿ ñàìà ê ñåáå.
Ðåêóðñèþ íàçûâàþò ÿâíîé èëè ïðÿìîé, åñëè ïîäïðîöåäóðà íåïîñðåäñòâåííî
ñîäåðæèò îáðàùåíèå ê ýòîé ïðîöåäóðå.
Íåÿâíîé, åñëè â ïðîöåññå âûïîëíåíèÿ ïðîöåäóðà îáðàùàåòñÿ ê äðóãîé
ïðîöåäóðå, êîòîðàÿ ÷åðåç öåïî÷êó âûçîâîâ îáðàùàåòñÿ ê èñõîäíîé ïðîöåäóðå.
Êàæäûé âûçîâ ðåêóðñèâíîé ïðîöåäóðû ÿâëÿåòñÿ íåçàâèñèìîé àêòèâàöèåé,
òàê êàê ê ðåêóðñèâíîé ïðîöåäóðå ìîæíî îáðàùàòüñÿ êàê èç ñàìîé ïðîöåäóðû,
òàê è èçâíå.
Äëÿ îáåñïå÷åíèÿ ïðàâèëüíîñòè íåîáõîäèìî, ÷òîáû âîçâðàò èç íåå ïðîèçâîäèëñÿ
â ïîäëåæàùåå ìåñòî âñëåä çà îïåðàòîðîì âûçîâà.
Ñîâîêóïíîñòü ôîðìàëüíûõ ïàðàìåòðîâ ëîêàëüíûõ ïåðåìåííûõ îäíîçíà÷íî
õàðàêòåðèçóåò àêòèâàöèþ ïðîöåäóðû è íàçûâàåòñÿ ôðåéìîì àêòèâàöèè è
âîññòàíîâëåíèÿ.
Äëÿ õðàíåíèÿ ôðåéìîâ àêòèâàöèè èñïîëüçóþò ñèñòåìíûé ñòåê.
Ñõåìà ðåêóðñèâíîé ïðîöåäóðû.

6


 
 

 



 

 !
    



 
 



 

7
 õîäå ðåøåíèÿ î çàâåðøåíèè îïðåäåëÿåòñÿ, ÿâëÿåòñÿ ëè âõîäíûå ïàðàìåòðû
òàêèìè, ÷òî äëÿ òàêèõ äàííûõ âîçìîæíî âû÷èñëåíèå âûõîäíûõ ïàðàìåòðîâ
â ñîîòâåòñòâèè ñ áàçèñíîé ÷àñòüþ âõîäíûõ ïàðàìåòðîâ.
 òåáå ðåêóðñèâíî âû÷èñëèìîãî öèêëà îáÿçàòåëüíî äîëæíû èçìåíÿòüñÿ
çíà÷åíèÿ ïåðåìåííûõ, îò êîòîðûõ çàâèñèò çàâåðøåíèå öèêëà.
Ïåðâîå îáðàùåíèå ê ðåêóðñèè â ïðîãðàììå àññîöèèðóåòñÿ ñ íîìåðîì 1,
êàæäûé ïîñëåäóþùèé âûçîâ óâåëè÷èâàåò ÷èñëî íà îäèí.
Äðóãîé õàðàêòåðèñòèêîé ÿâëÿåòñÿ ãëóáèíà ðåêóðñèè. Ãëóáèíà ðåêóðñèè -
÷èñëî ðåêóðñèâíûõ îáðàùåíèé äëÿ âû÷èñëåíèé, íåîáõîäèìûõ ïðè çàäàííûõ
àðãóìåíòàõ.
Ðåêóðñèâíî ìîæíî îïðåäåëèòü ñëåäóþùèå ñòðóêòóðû äàííûõ:
Ñïèñîê èç n ýëåìåíòîâ.
Íàáîðû.
Íàáîð - îðòîãîíàëüíàÿ ñòðóêòóðà èåðàðõè÷åñêè îïðåäåëåííàÿ â èåðàðõè÷åñêîì
ñïèñêå, ñîñòîèò èç ýëåìåíòîâ äâóõ òèïîâ:

1. Àòîì, ñîäåðæàùèé ýëåìåíòàðíóþ ïîðöèþ èíôîðìàöèè.

2. Íàáîð - ðàçíîðîäíûé ñïèñîê.


3. Ñòðóêòóðû äëÿ õðàíåíèÿ àðèôìåòè÷åñêèõ âûðàæåíèé.
 äàííîì ñëó÷àå ðåêóðñèÿ îçíà÷àåò âîçìîæíîñòü âëîæåííîñòè, ò.å. èñïîëüçîâàíèÿ
â ê êà÷åñòâå àðãóìåíòà ïîäâûðàæåíèå.

4 Äåðåâüÿ. Îñíîâíûå îïðåäåëåíèÿ. Áèíàðíîå äåðåâî.


Àëãîðèòì îáõîäà.

Äåðåâî îáùåãî âèäà - ìíîæåñòâî îáúåêòîâ ñîñòîÿùèõ èç îäíîãî èëè íåñêîëüêèõ


óçëîâ, äëÿ êîòîðûõ âûïîëíÿåòñÿ ñëåäóþùåå óñëîâèå:

1. Èìååòñÿ îäèí ñïåöèàëüíî âûäåëåííûé óçåë, íàçûâàåìûé êîðíåì äåðåâà.

2. Âñå îñòàëüíûå óçëû ðàçáèòû íà íå ïåðåñåêàþùèåñÿ ïîäìíîæåñòâà T1 , T2 , ..., Tn ,


êàæäîå èç êîòîðûõ ÿâëÿåòñÿ äåðåâîì.

3. Äåðåâüÿ T1 , T2 , .., Tn - ïîääåðåâüÿ äàííîãî êîðíÿ.

Ñòåïåíüþ óçëà íàçûâàåòñÿ ÷èñëî ïîääåðåâüåâ äàííîãî óçëà.


Êîíöåâûì óçëîì (ëèñòîì) äåðåâà íàçûâàåòñÿ óçåë íóëåâîé ñòåïåíè.
Óðîâíåì óçëà íàçûâàåòñÿ äëèíà ïóòè âåäóùåãî èç äàííîãî óçëà â êîðåíü
äåðåâà.
Íåëèíåéíûå ñòðóêòóðû äàííûõ, ê êîòîðûì îòíîñÿò äåðåâüÿ, âûðàæàþòñÿ
áîëåå ñëîæíûì îòíîøåíèå ïîðÿäêà, ÷åì ïðåäøåñòâîâàíèå è ñëåäîâàíèå.
Èñïîëüçóåòñÿ ïîíÿòèå ïðåäîê è ïîòîìîê.
Ñâîéñòâà äåðåâüåâ îáùåãî âèäà:

1. Êîðåíü äåðåâà íå èìååò ïðåäêîâ.

8
2. Êàæäûé óçåë, êðîìå êîðíÿ, èìååò îäíîãî ïðåäêà.

3. Êàæäûé óçåë êðîìå êîðíÿ ñâÿçàí ñ êîðíåì åäèíñòâåííûì ïóòåì.

4. Äåðåâî íàçûâàåòñÿ óïîðÿäî÷åííûì, åñëè äëÿ åãî óçëîâ âàæåí ïîðÿäîê


ñëåäîâàíèÿ ïîääåðåâüåâ.

Áèíàðíûì äåðåâîì íàçûâàåòñÿ óïîðÿäî÷åííîå äåðåâî âòîðîé ñòåïåíè.


Áèíàðíîå äåðåâî - êîíå÷íîå ìíîæåñòâî óçëîâ, êîòîðîå ëèáî ïóñòî, ëèáî
ñîñòîèò èç êîðíÿ è äâóõ íåïåðåñåêàþùèõñÿ áèíàðíûõ äåðåâüåâ, êîòîðûå íàçûâàþòñÿ
ëåâûì è ïðàâûì ïîääåðåâüÿìè.
Äåðåâüÿ ïðîèçâîëüíîãî âèäà ìîæíî ïðåîáðàçîâàòü â äåðåâüÿ áèíàðíîãî
âèäà.
Óçëû äåðåâà ñîñòîÿò èç îäíîãî èëè íåñêîëüêèõ ïîëåé è äâóõ ïîëåé ñâÿçè,
óêàçûâàþùèõ íà ëåâîå è ïðàâîå ïîääåðåâî.
Õðàíåíèå äåðåâüåâ ñ ïîñëåäîâàòåëüíîé îðãàíèçàöèåé ïàìÿòè.
Åñëè ðàçìåð äåðåâà èçâåñòåí çàðàíåå, òîãäà êîðåíü äåðåâà õðàíèòñÿ â
ÿ÷åéêå ñ íîìåðîì 1 è äëÿ ëþáîãî óçëà, íàõîäÿùåãîñÿ â ÿ÷åéêå i, ëåâûé ïîòîìîê
õðàíèòñÿ â ÿ÷åéêå 2i, à ïðàâûé ïîòîìîê â ÿ÷åéêå 2i + 1.
Ïðåèìóùåñòâî - ïðîñòîòà äîñòóïà ê ïðåäêàì è ïîòîìêàì.
Îáõîä äåðåâà - ñàìàÿ ðàñïðîñòðàíåííàÿ îïåðàöèÿ, âûïîëíÿåìàÿ íàä äåðåâüÿìè.
Ïðè îáõîäå êàæäàÿ âåðøèíà äåðåâà îáðàáàòûâàåòñÿ ðîâíî îäèí ðàç. Ïîëíûé
îáõîä äåðåâà ïîðîæäàåò ëèíåéíóþ ïîñëåäîâàòåëüíîñòü óçëîâ äåðåâà. Ïîðÿäîê
îáõîäà çàäàåòñÿ àëãîðèòìîì îáõîäà.
Íàèáîëåå ðàñïðîñòðàíåííûå àëãîðèòìû îáõîäà:

1. Íèñõîäÿùèé (ïðÿìîé): êîðåíü, ëåâî, ïðàâî.

2. Âîñõîäÿùèé (êîíöåâîé): ëåâî, ïðàâî, êîðåíü.

3. Ñìåøàííûé (îáðàòíûé) : ëåâî, êîðåíü, ïðàâî.

5 Ñáàëàíñèðîâàííûå äåðåâüÿ. Äèõîòîìè÷åñêèå äåðåâüÿ.


Àëãîðèòì ïîñòðîåíèÿ. ÀÂË - äåðåâüÿ.
Ñáàëàíñèðîâàííûì äåðåâîì íàçûâàþò áèíàðíîå äåðåâî, ó êîòîðîãî êîëè÷åñòâî
óçëîâ â ëåâîì è ïðàâîì ïîääåðåâî îòëè÷àåòñÿ íå áîëåå ÷åì íà 1.
Òàêîå äåðåâî èìååò ìèíèìàëüíóþ âûñîòó èç âñåõ äåðåâüåâ èç n óçëîâ.
Âûñîòà ñáàëàíñèðîâàííîãî äåðåâà [log2 n] + 1
Àëãîðèòì ïîñòðîåíèÿ ñáàëàíñèðîâàííîãî äåðåâà èç n óçëîâ
Åñëè n > 0:
Áåðåì ïåðâûé ýëåìåíò â êà÷åñòâå êîðíÿ äåðåâà.
Ñòðîèì ëåâîå ïîääåðåâî äëÿ äàííîãî êîðíÿ ñ ÷èñëîì óçëîâ nl = n div 2 ïî
äàííîìó àëãîðèòìó.
Ñòðîèì ïðàâîå ïîääåðåâî ñ ÷èñëîì óçëîâ nr = n − n div 2 − 1
Äèõîòîìè÷åñêèå äåðåâüÿ (äåðåâüÿ ïîèñêà):

9
Ïðè ïîñòðîåíèè äèõîòîìè÷åñêèõ äåðåâüåâ íà âñå ìíîæåñòâî ýëåìåíòîâ
çàäàþò îòíîøåíèå äèõîòîìèè, çàêëþ÷àþùååñÿ â ïîýòàïíîì ðàçáèåíèè ìíîæåñòâà
ýëåìåíòîâ íà äâà íå ïåðåñåêàþùèõñÿ ïîäìíîæåñòâà ïî çíà÷åíèþ èíôîðìàöèîííîãî
ïîëÿ(íàçûâàåìîãî êëþ÷åâûì ïîëåì).
Äåðåâîì ïîèñêà áóäåì íàçûâàòü áèíàðíîå äåðåâî, ïîñòðîåííîå òàêèì îáðàçîì,
÷òî äëÿ ëþáîãî óçëà äåðåâà, èìåþùåãî çíà÷åíèå êëþ÷åâîãî ïîëÿ = T1 âûïîëíÿåòñÿ:

1. Êëþ÷åâûå ïîëÿ âñåõ ýëåìåíòîâ ëåâîãî ïîääåðåâà < T1


2. Êëþ÷åâûå ïîëÿ âñåõ ýëåìåíòîâ ïðàâîãî ïîääåðåâà > T1

Ïîèñê â äèõîòîìè÷åñêîì äåðåâüåâ çàêëþ÷àåòñÿ â ïîñëåäîâàòåëüíîì ñðàâíåíèè


ñ êëþ÷îì òåêóùåãî óçëà è ïåðåõîäîì ê ëåâîìó èëè ïðàâîìó ïîääåðåâó â
çàâèñèìîñòè îò ðåçóëüòàòîâ ñðàâíåíèÿ.
Ïîèñê íà÷èíàåòñÿ â êîðíå è êîí÷àåòñÿ â íóæíîì ýëåìåíòå ëèáî â nil.
Ïîèñê â íåñáàëàíñèðîâàííîì äèõîòîìè÷åñêîì äåðåâå âûïîëíÿåòñÿ íå áîëåå,
÷åì çà âûñîòó äåðåâà.
Ïðè ïîñòðîåíèè ñáàëàíñèðîâàííûõ äåðåâüåâ ïîèñêà òðåáîâàíèå ê ñáàëàíñèðîâàííîñòè
ñíèæàþò. È ñ÷èòàþò ñáàëàíñèðîâàííûì äåðåâî, ó êîòîðîãî âûñîòà ëåâîãî è
ïðàâîãî ïîääåðåâà îòëè÷àåòñÿ íå áîëåå, ÷åì íà åäèíèöó.
ÀÂË-äåðåâî - ñáàëàíñèðîâàííîå ïî ñûñîòå äâîè÷íîå äåðåâî ïîèñêà: äëÿ
êàæäîé åãî âåðøèíû âûñîòà åå äâóõ ïîääåðåâüåâ ðàçëè÷àåòñÿ íå áîëåå ÷åì
íà 1.
ÀÂË-äåðåâüÿ íàçâàíû ïî ïåðâûì áóêâàì ôàìèëèé èõ èçîáðåòàòåëåé, Ã.Ì.
Àäåëüñîíà-Âåëüñêîãî è Å.Ì. Ëàíäèñà, êîòîðûå âïåðâûå ïðåäëîæèëè èñïîëüçîâàòü
ýòó ñòðóêòóðó äàííûõ â 1962 ãîäó.

6 ßçûê. Àëôàâèò. Öåïî÷êà. Ãðàììàòèêè ÿçûêà. Êëàññèôèêàöèÿ


ãðàììàòèê ïî Õîëìñêîìó.

Àëôàâèò - êîíå÷íîå íå ïóñòîå ìíîæåñòâî ñèìâîëîâ, èñïîëüçóåìûõ â ÿçûêå.


A={0, 1}
A={1..9, +, −, ∗, /, 0}
A={a..z}
A={0 A0 ..0 Z 0 ,0 a0 ..0 z0 }
Àëôàâèò áóäåì îáîçíà÷àòü áîëüøèìè áóêâàìè, à èñïîëüçóåìûå ñèìâîëû
- ìàëûìè áóêâàìè.
Öåïî÷êîé áóäåì íàçûâàòü ëþáóþ ïîñëåäîâàòåëüíîñòü ñèìâîëîâ â àëôàâèòå.
Îáîçíà÷àòü èõ áóäåì ãðå÷åñêèìè áóêâàìè.
Îòäåëüíî îáîçíà÷èì ïóñòóþ öåïî÷êó è íàçîâåì åå ε.
Äëèíó öåïî÷êè, îáîçíà÷àåìóþ |a|, áóäåì íàçûâàòü êîëè÷åñòâî ñèìâîëîâ
â öåïî÷êå.
ßçûêîì L â àëôàâèòå A áóäåì íàçûâàòü ìíîæåñòâî öåïî÷åê â àëôàâèòå
A.
A∗ - ìíîæåñòâî âñåõ öåïî÷åê â ýòîì àëôàâèòå.

10
Îïèñàòü ÿçûê ïóòåì ïåðå÷èñëåíèÿ âñåõ åãî öåïî÷åê âîçìîæíî òîëüêî êîãäà
ìíîæåñòâî öåïî÷åê êîíå÷íî.
 áîëüøèíñòâå æå ñëó÷àåâ ìíîæåñòâî íå ÿâëÿåòñÿ êîíå÷íûì èëè íåæåëàòåëüíî
çàäàâàòü ìàêñèìàëüíîå ÷èñëî öåïî÷åê.
Ïîýòîìó ÷òîáû îïèñàíèå ÿçûêà áûëî êîíå÷íûì èñïîëüçóþò äðóãèå ìåòîäû
îïèñàíèÿ ÿçûêà, ïîçâîëÿþùèå îïèñûâàòü áåñêîíå÷íûå ÿçûêè êîíå÷íûìè ñðåäñòâàìè.
Îäíèì èç òàêèõ ñïîñîáîâ ÿâëÿåòñÿ èñïîëüçîâàíèå ãðàììàòèêè èëè ïîðîæäàþùåé
ñèñòåìû.
Ãðàììàòèêîé G áóäåì íàçûâàòü ÷åòâåðêó îáúåêòîâ:
G = hS,Vn ,VT , Ri,ãäå:
Vn -ìíîæåñòâî íå òåðìèíàëüíûõ ñèìâîëîâ ãðàììàòèêè.
VT -ìíîæåñòâî òåðìèíàëüíûõ ñèìâîëîâ ãðàììàòèêè.
R-ìíîæåñòâî ïðàâèë ãðàììàòèêè.
Ìíîæåñòâî VT ñîâïàäàåò ñ ìíîæåñòâîì ñèìâîëîâ àëôàâèòà.
VN -ìíîæåñòâî ñèìâîëîâ, ó÷àñòâóþùèõ â ïîðîæäåíèè öåïî÷åê ÿâíî, íî íå
ó÷àñòâóþùèõ â îïèñàíèè ÿçûêà.
Ñèìâîë S - ñèìâîë ñ êîòîðîãî íà÷èíàåòñÿ ïîðîæäåíèå öåïî÷êè ÿçûêà, S ∈
VN .
Ìíîæåñòâî R îáû÷íî çàïèñûâàåò ñëåäóþùèì îáðàçîì.
S→0
S→1
S → 0A
S → 1A
A → 1A
A → 0A
A→ε
Çàïèñü â ïðàâèëüíîé ôîðìå, ïðèâåäåííîé âûøå, íå âñåãäà óäîáíà, ïîýòîìó
÷àñòî ââîäÿò ñëåäóþùèå ñèìâîëû:
0 |0 -àëüòåðíàòèâà.

S → 0|1|0A|1A
0 [0 ,0 ]0 -ôàêóëüòàòèâíûé ýëåìåíò

S → 0[A]|1[A]
0 {0 ,0 }0 -ìíîæåñòâî ýëåìåíòîâ - ýëåìåíòû âûáîðà

...{0|1|2}...
Ýòè îáîçíà÷åíèÿ áûëè ââåäåíû Áýêóñîì è Íàóðîì äëÿ îïèñàíèÿ Àëãîë-
60.
Íîòàöèÿ ñ èñïîëüçîâàíèå ýòèõ ýëåìåíòîâ íîñèò íàçâàíèå íîòàöèè Áýêóñà-
Íàóðà.
Ñ èñïîëüçîâàíèå ãðàììàòèêè ïðåäïîëàãàåòñÿ ïîðîæäåíèå öåïî÷åê, äëÿ
÷åãî çàïèñûâàåòñÿ íà÷àëüíûé ñèìâîë ãðàììàòèêè, çàòåì íà÷àëüíûé ñèìâîë
ãðàììàòèêè çàìåíÿåòñÿ íà öåïî÷êó ñèìâîëîâ â ñîîòâåòñòâèè ñ ëþáûì ïðàâèëîì
ãðàììàòèêè â ëåâîé ÷àñòè êîòîðîãî íàõîäèòñÿ íîðìàëüíûé ñèìâîë.
Ïðîöåññ áóäåò ïðîäîëæàòüñÿ äî òåõ ïîð, ïîêà íå áóäåò ïîëó÷åíà öåïî÷êà,
ñîñòîÿùàÿ òîëüêî èç òåðìèíàëüíûõ ñèìâîëîâ.
Ïðè ïîðîæäåíèè èñïîëüçóþò ñëåäóþùèå îáîçíà÷åíèÿ.
⇒- ïîðîæäàåò, íåïîñðåäñòâåííî ïîðîæäàåò.

11
⇒+ -ïîðîæäàåò çà îäèí èëè áîëåå øàãîâ.
(α ⇒∗ β ) ⇔ (α ⇒+ β ) ∨ (α = β )
Åñëè â ãðàììàòèêå èìååòñÿ ïðàâèëî u → ...u...,òî îíà íàçûâàåòñÿ ðåêóðñèâíîé,
ïðè ýòîì ãðàììàòèêà âèäà u → u... íàçûâàåòñÿ ëåâîðåêóðñèâíîé, à âèäà u →
...u-ïðàâî-ðåêóðñèâíîé.
Ñëåäóåò îòìåòèòü, ÷òî ãðàììàòèêà, ïîðîæäàþùàÿ áåñêîíå÷íûé ÿçûê äîëæíà
áûòü ðåêóðñèâíîé.
Ñåíòåíöèàëüíîé ôîðìîé áóäåì íàçûâàòü öåïî÷êó, âûâîäèìóþ èç íà÷àëüíîãî
ñèìâîëà ãðàììàòèêè.
Êëàññèôèêàöèÿ ãðàììàòèê ïî Õîëìñêîìó.
Ãðàììàòèêà òèïà 3- àâòîìàòíàÿ ãðàììàòèêà.
Ýòî ãðàììàòèêà, âñå ïðàâèëà êîòîðîé èìåþò âèä
A → aB
A → a,
ãäå A, B ∈ VN , a ∈ VT .
Ïðàâèëà âèäà A → a-çàêëþ÷èòåëüíûå(òåðìèíàëüíûå) ïðàâèëà.
Ïðèìå÷àíèå: â íåêîòîðûõ êíèãàõ âñòðå÷àåòñÿ ïðàâèëî àâòîìàòíîé ãðàììàòèêè
â âèäå:
A → Ba.
Òèï 2 - áåñêîíòåêñòíàÿ, êîíòåêñòíî-ñâîáîäíàÿ ãðàììàòèêà, ÊÑ - ãðàììàòèêà.
Ïðàâèëà èìåþò âèä

A → α , A ∈ VN , α ∈ (VT Vn )∗
Òèï 1 - êîíòåêñòíî-çàâèñèìàÿ ãðàììàòèêà, ÊÇ - ãðàììàòèêà
ϕ Aψ → ϕγψ
A ∈ VN ∪
ϕ , ψ ∈ (V V )∗
∪N ∗ T
γ ∈ (VN VT )
Òèï 0 - ðåêóðñèâíî - ïåðå÷èñëèìàÿ ãðàììàòèêà
α →β
α , β -ëþáûå.
Âñå ÿçûêè òèïà I ÿâëÿþòñÿ ÷àñòíûì ñëó÷àåì ÿçûêîâ I −1, çà èñêëþ÷åíèåì
ÿçûêîâ, ïîðîæäåííîé ÊÑ - ãðàììàòèêîé.
ßçûê ïîðîæäåííûé ãðàììàòèêîé òèïà i áóäåì íàçûâàòü ÿçûêîì òèïà i.
ßçûêè òèïà 0 î÷åíü ñëîæíû äëÿ àíàëèçà è äëÿ íèõ íå ñóùåñòâóåò àëãîðèòìîâ,
ïîçâîëÿþùèõ îïðåäåëèòü ïðèíàäëåæíîñòü öåïî÷êè ÿçûêó çà êîíå÷íîå ÷èñëî
øàãîâ. â ñâÿçè ñ ýòèì ðàññìàòðèâàòü òàêèå ÿçûêè ìû íå áóäåì.
Âñå îñòàëüíûå ÿçûêè, êîòîðûå áóäåì íàçûâàòü êîíòåêñòíûìè, ðàçðåøèìû,
ò.å. äëÿ íèõ ñóùåñòâóþò àëãîðèòìû, îïðåäåëÿþùèå ïðèíàäëåæíîñòü ÿçûêó
çà êîíå÷íîå ÷èñëî øàãîâ.
Ñóùåñòâóåò òåîðåìà, ãëàñÿùàÿ:
Âñå êîíòåêñòíûå ÿçûêè ðàçðåøèìû.
Òåõíèêà ïîñòðîåíèÿ àâòîìàòíûõ è êîíòåêñòíî ñâîáîäíûõ ãðàììàòèê.
Çàäà÷à: îïèñàòü ÿçûê â âèäå ãðàììàòèêè. Çàäàíû öåïî÷êè ÿçûêîâ è
òðåáóåòñÿ íàïèñàòü ýòè öåïî÷êè ñ ïîìîùüþ ïîðîæäàþùåé ãðàììàòèêè.

12
1. Äëÿ ïîñòðîåíèÿ ãðàììàòèêè ðàçáèâàåì öåïî÷êó íà íå òåðìèíàëüíûå
ñèìâîëû.

2. Íîâûå êîìïîíåíòû ðàçáèâàåì íà ïîäêîìïîíåíòû è ò.ä. ïîêà íå äîéäåì


äî òåðìèíàëüíûõ ñèìâîëîâ.

Ïðè ïîñòðîåíèè àâòîìàòíîé ãðàììàòèêè ðàññìîòðèì âñå èñõîäÿùèå öåïî÷êè,


âûïèñûâàÿ âñå òåðìèíàëüíûå ñèìâîëû, êîòîðûå ìîæíî âñòðåòèòü íà äàííîé
öåïî÷êå è ââåäåì íåòåðìèíàëüíûå ñèìâîëû, îáîçíà÷àþùèå êîíåö öåïî÷êè.
Çàïèñü âûâîäà â âèäå öåïî÷êè íå î÷åíü íàãëÿäíà, òàê ÷òî åé ñëåäóåò
ïðåäïî÷åñòü çàïèñü â âèäå äåðåâà.
Âûâåäåííàÿ öåïî÷êà ìîæåò áûòü ïîëó÷åíà ïóòåì ëåâîãî îáõîäà äåðåâà.
Ñëåäóåò îòìåòèòü, ÷òî ó äåðåâà âûâîäà íå îïðåäåëåí òî÷íûé ïîðÿäîê âûâîäà.
Âûâîäû, êîòîðûì ñîîòâåòñòâóåò îäíî è òî æå äåðåâî âûâîäà áóäåì ñ÷èòàòü
ýêâèâàëåíòíûìè.
Öåïî÷êà, äëÿ êîòîðîé ñóùåñòâóåò áîëåå îäíîãî äåðåâà âûâîäà íàçûâàåòñÿ
íåîäíîçíà÷íîé. Ãðàììàòèêà íàçûâàåòñÿ íåîäíîçíà÷íîé, åñëè â íåé âîçìîæíî
ïîðîæäåíèå íåîäíîçíà÷íîé öåïî÷êè.

7 Ïðåäñòàâëåíèå àâòîìàòíîé ãðàììàòèêè â âèäå ãðàôîâ.


Äåòåðìèíèðîâàííûå ôîðìû. Àëãîðèòì ïîñòðîåíèÿ
àíàëèçàòîðà.

Ãðàììàòèêó óäîáíî ïðåäñòàâëÿòü â âèäå ãðàôîâ. Âåðøèíà ãðàôà ñîñòîÿíèÿ


ñîîòâåòñòâóåò íåòåðìèíàëüíûì ñèìâîëàì ãðàììàòèêè. Èç âåðøèíû A ïðîâîäèòñÿ
äóãà â B åñëè â èñõîäíîé ãðàììàòèêå åñòü ïðàâèëî âèäà A → aB. Ãðàììàòèêó
0
ìîäèôèöèðóþò, äîáàâëÿÿ ê èñõîäíîé ãðàììàòèêè íåêîòîðûå ïðàâèëà. VN =

VN {F} è çàìåíÿÿ âñå ïðàâèëà âèäà A → a íà A → aF.
Äåòåðìèíèðîâàííàÿ, íåäåòåðìèíèðîâàííàÿ è âïîëíå äåòåðìèíèðîâàííàÿ
ãðàììàòèêà.
Ãðàììàòèêà a íàçûâàåòñÿ äåòåðìèíèðîâàííîé åñëè äëÿ ëþáîãî òåðìèíàëà
A ñóùåñòâóåò íå áîëåå îäíîãî ïðàâèëà A → aB.
 ïðîòèâíîì ñëó÷àå àâòîìàòíàÿ ãðàììàòèêà íàçûâàåòñÿ íåäåòåðìèíèðîâàííîé.
Ãðàììàòèêà A íàçûâàåòñÿ âïîëíå äåòåðìèíèðîâàííîé, åñëè äëÿ ëþáîãî
íåòåðìèíàëà A è äëÿ ëþáîãî òåðìèíàëà a ñóùåñòâóåò ðîâíî îäíî ïðàâèëî
âèäà A → aB.
Òåîðåìà:
Äëÿ ëþáîé ãðàììàòèêè ñóùåñòâóåò ýêâèâàëåíòíàÿ äåòåðìèíèðîâàííàÿ
ãðàììàòèêà.
Àëãîðèòì íàõîæäåíèÿ äåòåðìèíèðîâàííîé ãðàììàòèêè.
Íà ïðàêòèêå ïðè àíàëèçå öåïî÷åê ÷àñòî ââîäÿò òåðìèíàëüíûé (çàêëþ÷èòåëüíûé)
ñèìâîë. Ïðè ýòîì çàêëþ÷èòåëüíóþ âåðøèíó F çàìåíÿþò íà çàêëþ÷èòåëüíóþ
0
âåðøèíó F.

13
Òàêæå äëÿ ïðèâåäåíèÿ ãðàììàòèêè îò äåòåðìèíèðîâàííîé êî âïîëíå äåòåðìèíèðîâàííîé
ôîðìå ÷àñòî ââîäÿò îøèáî÷íóþ âåðøèíó è îáîçíà÷àþò åå ε . Äàëåå äëÿ âñåõ
íåòåðìèíàëüíûõ ñèìâîëîâ ñòðîÿò äëÿ ëþáûõ À ïåðåõîä A → aε .
Ñèíòàêñè÷åñêèé àíàëèç àâòîìàòíûõ ÿçûêîâ.
Ñõåìà àëãîðèòìà è ïðîãðàììà, àíàëèçèðóþùàÿ ïðèíàäëåæíîñòü öåïî÷êè
a ê ñîîòâåòñòâóþùåìó ÿçûêó ñòðîèòñÿ ïî ñîîòâåòñòâóþùèì àâòîìàòàì.
Êàæäàÿ âåðøèíà ãðàôà êðîìå çàêëþ÷èòåëüíîé è îøèáî÷íîé ñîîòâåòñòâóåò
âûáîðó öåïî÷êè. Êàæäîìó ðåáðó ãðàôà ñîîòâåòñòâóåò áëîê àíàëèçà ñèìâîëà
ñ ïîñëåäóþùèì ïåðåõîäîì â ñëåäóþùóþ âåðøèíó.
Àëãîðèòì ïîñòðîåíèÿ.

1. ñîñòàâëÿåòñÿ àâòîìàòíàÿ ãðàììàòèêà.

2. Åñëè ãðàììàòèêà íå äåòåðìèíèðîâàííàÿ, òî ïðèâåñòè ê äåòåðìèíèðîâàííîé


ôîðìå.

3. Ïî ïîëó÷åííîé ãðàììàòèêå ñòðîèòñÿ ãðàô ñîñòîÿíèé.

4. Ïî ïîëó÷åííîìó ãðàôó ïèøåòñÿ ïðîãðàììà.

5. Îñóùåñòâëÿåòñÿ äîáàâëåíèå â ïðîãðàììó ñåìàíòè÷åñêèõ ïðîöåäóð.

8 Ðàñïîçíàâàòåëü - îñíîâíûå ïîíÿòèÿ è àëãîðèòì ðàáîòû.

Åùå îäèí ñïîñîá çàäàíèÿ ÿçûêîâ - èñïîëüçîâàíèå ðàñïîçíàâàòåëÿ èëè àâòîìàòà.


Îí ñîñòîèò èç ÷åòûðåõ ÷àñòåé.

1. Âõîäíàÿ ëåíòà

2. Ãîëîâêà ÷òåíèÿ

3. Óñòðîéñòâî óïðàâëåíèÿ

4. Âíåøíÿÿ ïàìÿòü

Âõîäíàÿ ëåíòà - ëèíåéíàÿ ïîñëåäîâàòåëüíîñòü ÿ÷ååê, ñîäåðæàùàÿ ñèìâîëû


àëôàâèòà.
Íà ïðàâîì èëè ëåâîì êðàþ ìîãóò ñòîÿòü îñîáûå ñèìâîëû.
Ìîæåò ñäâèãàòüñÿ çà 1 øàã âïðàâî\âëåâî\íèêóäà.
Ðàñïîçíàâàòåëü, êîòîðûé íèêîãäà íå ïåðåäâèãàåò ãîëîâêó âëåâî, íàçûâàåòñÿ
îäíîñòîðîííèì.
×àùå âñåãî ãîëîâêà òîëüêî ÷èòàåò ñèìâîëû âõîäíîé ëåíòû, íî âñòðå÷àþòñÿ
è ðàñïîçíàâàòåëè - ïðåîáðàçîâàòåëè, íàïðèìåð ìàøèíà Òüþðèíãà.
Âíåøíÿÿ ïàìÿòü - õðàíèëèùå èíôîðìàöèè íåêîòîðîãî òèïà, àëôàâèò êîòîðîé
êîíå÷åí.
Çàäàåòñÿ äâóìÿ ôóíêöèÿìè:
ÔÄÏ - ôóíêöèÿ äîñòóïà ê ïàìÿòè.
ÔÏÏ - ôóíêöèÿ ïðåîáðàçîâàíèÿ ïàìÿòè.
ÔÄÏ - îòîáðàæåíèÿ ìíîæåñòâà èíôîðìàöèîííûõ ñèìâîëîâ.

14
ÔÏÏ - îòîáðàæàåò ñîñòîÿíèå ïàìÿòè â íîâîå ñîñòîÿíèå ïàìÿòè.
Óñòðîéñòâî óïðàâëåíèÿ - ìíîæåñòâî ñîñòîÿíèé, â ñîâîêóïíîñòè ñ îòîáðàæåíèåì,
êîòîðàÿ îïèñûâàåò, êàê ìåíÿþòñÿ òåêóùèå ñîñòîÿíèÿ â çàâèñèìîñòè îò âõîäíîãî
ñèìâîëà è èíôîðìàöèè, è0âëåêàåìîé èç âíåøíåé ïàìÿòè.
Ðàñïîçíàâàòåëü ðàáîòàåò, ïðîäåëûâàÿ ïîñëåäîâàòåëüíîñòü øàãîâ:

1. Ãîëîâêà âïðàâî\âëåâî\íåïîäâèæíà.

2. Â ïàìÿòü ïîìåùàåòñÿ íåêîòîðàÿ èíôîðìàöèÿ.

3. Èçìåíÿåòñÿ ñîñòîÿíèå óïðàâëÿþùåãî óñòðîéñòâà.

Êîíôèãóðàöèÿ ðàñïîçíàâàòåëÿ - ñîâîêóïíîñòü ïàðàìåòðîâ, îïèñûâàþùèõ


1. Ñîñòîÿíèå óñòðîéñòâà

2. Ñîäåðæèìîå âõîäíîé ëåíòû âìåñòå ñ ïîëîæåíèåì â ãîëîâêå.

3. Ñîäåðæèìîå ïàìÿòè

Íåäåòåðìèíèðîâàííûì íàçûâàþò ðàñïîçíàâàòåëü, äëÿ êîòîðîãî ñóùåñòâóåò


ìíîæåñòâî øàãîâ, êîòîðîå îí ìîæåò ñäåëàòü èñõîäÿ èç òåêóùåé êîíôèãóðàöèè.
Ñðåäè ñîñòîÿíèé ðàñïîçíàâàòåëÿ âûäåëàþò ïîäìíîæåñòâî íà÷àëüíûõ ñîñòîÿíèé
è ïîäìíîæåñòâî êîíå÷íûõ ñîñòîÿíèé.
Ðàñïîçíàâàòåëü äîïóñêàåò âõîäíóþ öåïî÷êó α, åñëè íà÷èíàÿ ñ îäíîé èç
íà÷àëüíûõ êîíôèãóðàöèÿ ðàñïîçíàâàòåëü ìîæåò ïðîäåëàòü ïîñëåäîâàòåëüíîñòü
øàãîâ, çàêàí÷èâàþùóþñÿ êîíå÷íîé êîíôèãóðàöèåé.
 çàêëþ÷èòåëüíîì êîíôèãóðàöèè ðàñïîçíàâàòåëü íàõîäèòñÿ â îäíîì èç
çàêëþ÷èòåëüíûõ ñîñòîÿíèé è ãîëîâêà îáîçðåâàåò êðàéíèé ïðàâûé ñèìâîë
âîäíîé ëåíòû èëè ñîøëà ñ ëåíòû è ñîäåðæèìîå ïàìÿòè óäîâëåòâîðÿåò íåêîòîðûì
çàäàííûì óñëîâèÿì.
ßçûê, äîïóñêàåìûé ðàñïîçíàâàòåëåì - ìíîæåñòâî âõîäíûõ öåïî÷åê, êîòîðûå
îí äîïóñêàåò. ßçûê îïðåäåëÿåìûé ðàñïîçíàâàòåëåì àâòîìàòà òîãäà è òîëüêî
òîãäà, êîãäà îí îïðåäåëÿåòñÿ îäíîñòîðîííèì äåòåðìèíèðîâàííûì àâòîìàòîì
(ïðèìåð - ìàøèíà Òüþðèíãà).

9 Àëãîðèòì ïåðåõîäà îò íå äåòåðìèíèðîâàííîãî àâòîìàòà


ê äåòåðìèíèðîâàííîìó.

Êîíå÷íûì àâòîìàòîì áóäåì íàçûâàòü îäíîñòîðîííèé ðàñïîçíàâàòåëü, ãäå


ãîëîâêà äâèæåòñÿ òîëüêî âïðàâî è îòñóòñòâóåò âíåøíÿÿ ïàìÿòü.
Êîíå÷íûé àâòîìàò M îïðåäåëÿåòñÿ ïÿòåðêîé îáúåêòîâ
M = hQ, F, δ , N, Σi,
ãäå Q - ìíîæåñòâî íà÷àëüíûõ ñîñòîÿíèé
F - ìíîæåñòâî êîíå÷íûõ ñîñòîÿíèé
δ - ôóíêöèÿ îòîáðàæåíèÿ
N - ìíîæåñòâî ñîñòîÿíèé àâòîìàòà

15
Σ - àëôàâèò
δ : N ×Σ → N

Σ\N A B C
a B
b C
c C
Ø Ø 1
C - çàêëþ÷èòåëüíîå ñîñòîÿíèå, A - çàêëþ÷èòåëüíîå ñîñòîÿíèå.
Åñëè àâòîìàò íåäåòåðìèíèðîâàííûé, òî âõîäíûõ ñîñòîÿíèé ìîæåò áûòü
íåñêîëüêî.
Íåäåòåðìèíèðîâàííûé êîå÷íûé àâòîìàò - àâòîìàò, ó êîòîðîãî çíà÷åíèÿ
ôóíêöèè ïåðåõîäîâ - íå îòäåëüíîå ñîñòîÿíèå, à ìíîæåñòâî ñîñòîÿíèé. Â
îáùåì ñëó÷àå ó íåäåòåðìèíèðîâàííîãî àâòîìàòà íà÷àëüíûõ ñîñòîÿíèé ìîæåò
áûòü íåñêîëüêî.
Àëãîðèòì ïîëó÷åíèÿ èç ÍÄÀ ÄÀ.
Ïóñòü Mí - íåäåòåðìèíèðîâàííûõ àâòîìàò ñ ôóíêöèåé ïåðåõîäîâ δí . Áóäåì
ñòðîèòü äåòåðìèíèðîâàííûé àâòîìàò Mä âìåñòå ñ ôóíêöèåé ïåðåõîäîâ δä .
1. Ïîìå÷àåì ïåðâûé ñòîëáåö òàáëèöû ïåðåõîäà ÄÀ ìíîæåñòâîì íà÷àëüíûõ
ñîñòîÿíèé ÍÄÀ.

2. Ïî äàííîìó ìíîæåñòâó ñîñòîÿíèé X ïîìå÷àåì ñòîëáåö òàáëèöû ïåðåõîäà


ÄÀ, äëÿ êîòîðîãî ïåðåõîäà åùå íå âû÷èñëåíî îïðåäåëÿåì òå ñîñòîÿíèÿ
ÍÄÀ, êîòîðûå ìîãóò áûòü äîñòèãíóòû èç X ñ ïîìîùüþ êàæäîãî ñèìâîëà
àëôàâèòà a è ïîìåùàåì ìíîæåñòâî ñîñòîÿíèé Y â ñîîòâåòñòâóþùèå
ÿ÷åéêè ÄÀ.
y = δä (x, a) = {u|u ∈ δí (v, a) , v ∈ X}
3. Äëÿ êàæäîãî ìíîæåñòâà Y, ïîðîæäåííîãî íà øàãå 2, ïðîâåðèòü, èìååòñÿ
ëè â ÄÀ ñòîëáåö, ïîìå÷åííûé ýòèì.
Åñëè íå èìååòñÿ, òî ñîçäàòü íîâûé ñòîëáåö è ïîìåòèòü åãî Y ∗

4. Åñëè â òàáëèöå ÄÀ åñòü ñòîëáöû äëÿ êîòîðûõ ïåðåõîä åùå íå âûïîëíåí


ïðèìåíÿåì ê íåìó øàã 2 â ïðîòèâíîì ñëó÷àå ïåðåõîäèì ê øàãó 5.

5. Ïîìå÷àåò ñòîëáåö ÄÀ êàê äîïóñêàþùåå ñîñòîÿíèå åñëè â íåì åñòü õîòÿ


áû îäíî äîïóñêàþùåå ñîñòîÿíèå.

10 Ýêâèâàëåíòíûå ïðåîáðàçîâàíèÿ.

11 Òåîðåìà îá îáùåì âèäå àâòîìàòíûõ è ÊÑ ÿçûêîâ è


èõ ñëåäñòâèÿ.

Òåîðåìà îá îáùåì âèäå öåïî÷åê àâòîìàòíûõ ÿçûêîâ.

16
Ïóñòü L - àâòîìàòíûé ÿçûê. Òîãäà ñóùåñòâóåò p > 0, ÷òî äëÿ êàæäîãî
ϕ ∈L
|ϕ | ≥ p.
ϕ = α Bγ , |B| > 0
α Bi γ ∈ L
Äàííàÿ òåîðåìà ãîâîðèò î òîì, ÷òî åñëè äàí àâòîìàòíûé ÿçûê è äîñòàòî÷íî
äëèííàÿ öåïî÷êà â íåì, òî â äàííîé öåïî÷êå ìîæíî íàéòè íåïóñòóþ ïîäöåïî÷êó,
êîòîðóþ ìîæíî ïîâòîðèòü ñêîëüêî óãîäíî ðàç è âñå ïîëó÷åííûå öåïî÷êè
áóäóò ïðèíàäëåæàòü òîìó æå ñàìîìó ÿçûêó.
Òåîðåìà èñïîëüçóåòñÿ äëÿ òîãî, ÷òîáû äîêàçàòü, ÷òî íå âñå öåïî÷êè ìîãóò
áûòü ïîñòðîåíû ñ ïîìîùüþ àâòîìàòíûõ ãðàììàòèê.
1 ñëåäñòâèå: ÿçûê, ñîäåðæàùèé öåïî÷êó âèäà xn yn íå ÿâëÿåòñÿ àâòîìàòíûì
ÿçûêîì.
2 ñëåäñòâèå: ÿçûê àðèôìåòè÷åñêîãî âûðàæåíèÿ â îáùåì ñëó÷àå íå ÿâëÿåòñÿ
àâòîìàòíûì.
Òåîðåìà îá îáùåì âèäå ÊÑ ÿçûêîâ.
L - ÊÑ ÿçûê ⇒ ∃p > 0 : ϕ ∈ L; |ϕ | ≥ p
Ïóñòü
Ñëåäñòâèå1: xn yn zn íå ìîãóò áûòü ïîðîæäåíû ÊÑ ÿçûêàìè.
Ñëåäñòâèå 2: ÿçûêè ïðîãðàììèðîâàíèÿ â îáùåì ñëó÷àå íå ÿâëÿþòñÿ ÊÑ
ÿçûêàìè.
Íà ïðàêòèêå âñå ÿçûêè ñ÷èòàþòñÿ ÊÑ. Äîïîëíèòåëüíûé êîíòðîëü çà ïðîâåðêîé
ïîëàãàåòñÿ íà ñåìàíòè÷åñêèå ïîäïðîãðàììû.

12 Îïåðàöèè íàä ÿçûêàìè è òåîðåìà îá îïåðàöèÿõ íàä


àâòîìàòíûìè è ÊÑ ÿçûêàìè.

1. ßçûê L íàçûâàåòñÿ îáúåäèíåíèåì ÿçûêîâ L1 , L2 , åñëè îí ñîñòîèò èç öåïî÷åê


L = {α |α ∈ L1 ∨ α ∈ L2 }.

2. Ïåðåñå÷åíèå L = L1 ∧ L2 ⇔ L = {α |α ∈ L1 ∧ α ∈ L2 }

3. Ðàçíîñòü L = L1 \ L2 ⇔ L = {α |a ∈ L1 ∧ α ∈
/ L2 }

4. Äîïîëíåíèå L = L¯1 ⇔ L = {α |α ∈
/ L1 }

5. Êîíêàòåíàöèÿ L = L1 L2 ⇔ L = {α |α = β γ , β ∈ L1 , γ ∈ L2 }
6. ßçûê L íàçûâàåòñÿ èòåðàöèåé ÿçûêà L1 , åñëè
L0 = {ε }
Ln = L Ln−1
∪1 1 n

L = ∪n≥0 L
L+ = n>0 Ln
7. ßçûê L íàçûâàåòñÿ îáðàùåíèåì ÿçûêà L1 , åñëè îí ñîñòîèò èç öåïî÷åê
{ }
L = L1R , L = α R |α ∈ L1

17
8. Ïîäñòàíîâêà ÿçûêà L2 â L1 âìåñòî a - âî âñåõ öåïî÷êàõ ÿçûêà L1 , ãäå
âñòðå÷àåòñÿ ñèìâîë a, îí çàìåíåí íà âñå âîçìîæíûå öåïî÷êè L2 .

ÊÑ ÿçûêè çàìêíóòû îòíîñèòåëüíî îáúåäèíåíèÿ, êîíêàòåíàöèè, èòåðàöèè,


ïîäñòàíîâêè è îáðàùåíèÿ.
Àâòîìàòíûå ÿçûêè çàìêíóòû îòíîñèòåëüíî îáúåäèíåíèÿ, êîíêàòåíàöèè,
èòåðàöèè, îáðàùåíèÿ, ïîäñòàíîâêè, ïåðåñå÷åíèÿ, äîïîëíåíèÿ è ðàçíîñòè.
 ðåçóëüòàòå îïåðàöèé íàä ÿçûêàìè ïîëó÷àåòñÿ íîâîå ìíîæåñòâî öåïî÷åê.
Ïðè ðåàëèçàöèè íà ÝÂÌ ïðîãðàììû ñèíòàêñè÷åñêîãî àíàëèçà ëó÷øå âñåãî
ïðåäñòàâëÿòü â âèäå ëîãè÷ñêèõ ôóíêöèé, äàþùèõ ïîëíûé îòâåò, åñëè öåïî÷êà
ïðèíàäëåæèò ÿçûêó è îòðèöàòåëüíûé îòâåò â ïðîòèâíîì ñëó÷àå.
Ïðè òàêîì ïîñòðîåíèè èòåðàöèÿ - âûçîâ ïðîöåäóðû âíóòðè öèêëà, êîíêàòåíàöèÿ
- ïîñëåäîâàòåëüíûé âûçîâ ïîäïðîãðàìì, îáúåäèííèå - àëüòåðíàòèâíûé âûçîâ
ïðîöåäóðû, ïîäñòàíîâêà- çàìåíà àíàëèçà òåðìèíàëüíîãî ñèìâîëà íà ïðîöåäóðó
åãî ñèíòàêñè÷åñêîãî ðàçáîðà.

13 Ìåòîäû àíàëèçà ÊÑ ÿçûêîâ. Ãðàììàòèêè ïðåäøåñòâîâàíèÿ.

13.1 Ñèíòàêñè÷åñêèé àíàëèç êîíòåêñíî-ñâîáîäíûõ ÿçûêîâ

Ìåòîäû ïîñòðîåíèÿ àíàëèçàòîðîâ äëÿ ÊÑ ãðàììàòèêè ðàçäåëÿþòñÿ íà äâå


ãðóïïû:

1. Íèñõîäÿùèå ìåòîäû

2. Âîñõîäÿùèå ìåòîäû

Ýòè òåðìèíû ñîîòâåòñòâóþò ñïîñîáó ïîñòðîåíèÿ ñèíòàêñè÷åñêèõ äåðåâüåâ


âûâîäà.
Íèñõîäÿùèå ìåòîäû âûïîëíÿþò àíàëèç ñ íà÷àëüíîãî âûïîëíåíèÿ íåòåð-
ìèíàëà èëè îò êîðíÿ äåðåâà ê êîíöåâûì âåðøèíàì ïûòàÿñü ïîñòðîèòü äå-
ðåâî âíèç (åñëè äåðåâî ïîñòðîèòü óäàëîñü, òî öåïî÷êà ïðèíàäëåæèò äàííîé
ãðàììàòèêå, â ïðîòèâíîì ñëó÷àå íå ïðèíàäëåæèò).
 îáùåì ñëó÷àå ìåòîäû ýòîé ãðóïïû îñíîâàíû íà ïåðåáîðå âñåõ âîçìîæ-
íûõ âàðèàíòîâ ÿçûêà. Ïîýòîìó áîëåå ÷àñòî èñïîëüçóþòñÿ ìåòîäû âîñõîäÿ-
ùèå.
Àëãîðèòìû âîñõîäÿùåãî ðàçáîðà íà÷èíàþòñÿ ñ ëèñòüåâ äåðåâà âûâîäà è
ïûòàþòñÿ ïîñòðîèòü äåðåâî ðàçáîðà âîñõîäÿ îò ëèñòüåâ ê êîðíþ.
Ñðåäè âîñõîäÿùèõ àëãîðèòìîâ íàèáîëüøåå ðàñïðîñòðàíåíèå ïîëó÷èëè
àëãîðèòìû, èñïîëüçóþùèå îòíîøåíèå ïðåäøåñòâîâàíèÿ.
Ñîãëàñíî ýòèì ìåòîäàì ìåæäó ñèìâîëàìè, êîòîðûå ìîãóò âñòðåòèòüñÿ
â öåïî÷êå, îïðåäåëÿþòñÿ îòíîøåíèÿ:

1. Îòíîøåíèå ðàâåíñòâà =
˙
2. Îòíîøåíèå ìåíüøå (ðàíüøå) ≤
˙

3. Îòíîøåíèå áîëüøå (ïîçæå) ≥


˙

18
Îòíîøåíèå ðàâåíñòâà îïðåäåëÿåòñÿ, åñëè ñèìâîëû h1 è h2 ñòîÿò â îäíîì
ðÿäó.
Îòíîøåíèå ìåíüøå îïðåäåëÿåòñÿ, åñëè ñèìâîëû h1 óæå âûâåäåíî, à h2 áó-
äåò ñòîÿòü íåïîñðåäñòâåííî ñïðàâà îò h1 ïðè ïðèåíåíèè íåêîòîðîãî ïðàâèëà
íà ñëåäóþùåì øàãå âûâîäà.
Îòíîøåíèå áîëüøå îïðåäåëåíî êîãäà h2 óæå âûâåäåíî, à h1 áóäåò ñòîÿòü
íåïîðåäñòâåííî ñëåâà îò h2 íà ñëåäóþùåì øàãå âûâîäà.
Îñíîâîé äëÿ ñâåðòêè ïðè èñàîëüçîâàíèè ðàñìàòðèâàåñûõ ìåòîäîâ ÿâëÿ-
þòñÿ ñèìâîëû, ðàñïîëîæåííûå ìåæäó îòíîøåíèÿìè ïðåøåñòâîâàíèÿ <, >.

13.2 Ãðàììàòèêè ïðåäøåñòâîâàíèÿ

Íàèáîëåå ýôôåêòèâíûå ìåòîäû ñâåðòêè ìîæíî ïðèìåíèòü äëÿ óçêîãî êëàñ-


ñà ÊÑ ãðàììàòèê, êîòîðûå íàçûâàþòñÿ ãðàììàòèêàìè ïðåäøåñòâîâàíèÿ.
Ãðàììàòèêè ïðåäøåñòâîâàíèÿ - óçêèé êëàññ ÊÑ ãðàììàòèê, äëÿ êîòî-
ðûõ âûïîëíÿþòñÿ äâà ïðàâèëà:

1. Ìåæäó ëþáûìè äâóìÿ ñèìâîëàìè ñóùåñòâóåò íå áîëåå îäíîãî îòíî-


øåíèÿ ïðåäøåñòâîâàíèÿ.

2. Íå ñóùåñòâóåò äâóõ ïðàâèë, ñîäåðæàùèõ îäèíàêîâûå ïðàâûå ÷àñòè.

Ñóùåñòâóåò ðÿä âèäîâ ãðàììàòèê ïðåäøåñòâîâàíèÿ, ðàçëè÷àþùèõñÿ ïðà-


âèëàìè îïðåäåëåíèÿ.

1. Ãðàììàòèêà ïðåäøåñòâîâàíèÿ Âèðòà, îòíîøåíèÿ ïðåäøåñòâîâàíèÿ îïðå-


äåëåíû ìåæäó ëþáûìè ñèìâîëàìè ( òåðìèíàëüíûìè è íåòåðìèíàëü-
íûìè)

2. Ãðàììàòèêà ïðåäøåñòâîâàíèÿ Ôëîéäà, îòíîøåíèÿ ïðåäøåñòâîâàíèÿ


ââåäåíû òîëüêî ìåæäó òåðìèíàëüíûìè ñèìâîëàìè.
Êðîìå òîãî, â ãðàììàòèêå Ôëîéäà íå äîïóñêàåòñÿ äâà ñòîÿùèõ ðÿäîì
íåòåðìèíàëüíûõ ñèìâîëîâ.

Ïðè èñïîëüçîâàíèè ãðàììàòèê ïðåäøåñòâîâàíèÿ òàáëèöû, ñîäåðæàùèå îò-


íîøåíèÿ ïðåäøåñòâîâàíèÿ ìîãóò áûòü î÷åíü áîëüøèìè, òàê êàê ÷èñëî íåòåð-
ìèíàëüíûõ è òåðìèíàëüíûõ ñèìâîëîâà âåëèêî.
Äëÿ ðåøåíèÿ ýòîé ïðîáëåìû áûëî ïðåäëîæåíî èñïîëüçîâàòü ÷èñëîâûå
ôóíêöèè ïðåäøåñòâîâàíèÿ ñ íå÷èñëîâûìè àðãóìåíòàìè, äëÿ êîòîðûõ âû-
ïîëíÿåòñÿ:
f (h1 ) = g (h2 ) ⇔ h1 =h
˙ 2
f (h1 ) < g (h2 ) ⇔ h1 <h
˙ 2
f (h1 ) > g (h2 ) ⇔ h1 >h
˙ 2

14 ÏÎËÈÇ. Àëãîðèòì Çàìåëüñîíà-Áàóýðà.

14.1 ÏÎËÈÇ

ÏÎËÈÇ - ïîëüñêàÿ èíâåðñíàÿ çàïèñü.

19
1. È èäåíòèôèêàòîðû, è êîíñòàíòû èäóò â òîì æå ïîðÿäêå, ÷òî è â èíôèêñíîé
çàïèñè.

2. Îïåðàòîðû ñëåäóþò â òîì æå ïîðÿäêå, ïî êîòîðîìó îíè äîëæíû âû÷èñëÿòüñÿ.

3. Îïåðàòîðû ðàñïîëàãàþòñÿ íåïîñðåäñòâåííî çà ñâîèìè îïåðàíäàìè.

Àëãîðèòì Çàìåëüñîíà-Áàóýðà ïåðâîäà àðèôìåòè÷åñêîãî âûðàæåíèÿ â ÏÎËÈÇ


Äëÿ êàæäîãî ðàçäåëèòåëÿ(ñêîáêè, îïåðàòîðû) ââîäÿò äâà ïðèîðèòåòà: ñðàâíèòåëüíûé
è ìàãàçèííûé.
Ñèìâîë ( ) +,- *,/ if,:=,while then,do else ;,end or and not îï. ñðàâíåíèÿ
Pc 9 0 7 8 9 1 2 1 3 4 5 6
Pì 0 - 7 8 0 0 2 - 3 4 5 6
Èñõîäíîå âûðàæåíèå ðàññìàòðèâàåòñÿ îäèí ðàç ñëåâà íàïðàâî.
Èäåíòèôèêàòîðû è êîíñòàíòû ïåðåïèñûâàþòñÿ â âûõîäíóþ ñòðîêó.
Ïðè îáíàðóæåíèè ðàçäåëèòåëÿ åãî ñðàâíèòåëüíûé ïðèîðèòåò ñðàâíèâàåòñÿ
ñ ìàãàçèííûì ïðèîðèòåòîì ðàçäåëèòåëÿ, êîòîðûé ñòîèò íà âåðøèíå ñòåêà.
Åñëè îí áîëüøå, èëè ñòåê ïóñòîé, òî ðàçäåëèòåëü ïîìåùàåòñÿ â ñòåê.
Èíà÷å ðàçäåëèòåëü èçâëåêàåòñÿ èç ñòåêà è çàïèñûâàåòñÿ â âûõîäíóþ ñòðîêó
ÏÎËÈÇ, ïîñëå ÷åãî øàã 2 âûïîëíÿåòñÿ äëÿ òîãî æå âõîäíîãî ñèìâîëà.
Çàêðûâàþùàÿñÿ ñêîáêà - èç ñòåêà èçâëåêàåòñÿ âñå âïëîòü äî ïåðâîé îòêðûâàþùåé
ñêîáêè è çàïèñûâàåòñÿ â ñòðîêó ÏÎËÈÇ. Îòêðûâàþùàÿ ñêîáêà èçâëåêàåòñÿ,
íî íå çàïèñûâàåòñÿ.
Ïîñëå èçúÿòèÿ ñêîáêè ïåðåõîäèì ê ñëåäóþùåìó ñèìâîëó.
Ïðè äîñòèæåíèè êîíöà ñòðîêè ñîäåðæèìîå ñòåêà ïåðåïèñûâàåòñÿ â ÏÎËÈÇ.
Èíòåðïðåòàöèÿ.
Ñ ïîìîùüþ ñòåêà âûðàæåíèå ìîæåò áûòü âû÷èñëåíî çà îäèí ïðîñìîòð
ñëåâà íàïðàâî, ïðè ýòîì åñëè ñêàíèðóåìûé ñèìâîë èäåíòèôèêàòîð èëè êîíñòàíòà,
ñîîòâåòñòâóþùåå çíà÷åíèå çàíîñèòñÿ â ñòåê.
Åñëè ñêàíèðóåìûé ñèìâîë - óíàðíûé îïåðàòîð, òî îí ïðèìåíÿåòñÿ ê âåðõíåìó
îïåðàòîðó â ñòåêå, êîòîðûé çàìåíÿåòñÿ íà ðåçóëüòàò.
Åñëè áèíàðíûé îïåðàòîð(çà èñêëþ÷åíèÿìè, ïðèâåäåííûìè íèæå), òî îí
ïðèìåíÿåòñÿ ê äâóì âåðõíèì çíà÷åíèÿì â ñòåêå è â íåãî äîáàâëÿåòñÿ ðåçóëüòàò.
Åñëè âñòðåòèëñÿ áèíàðíûé îïåðàòîð ïðèñâàèâàíèÿ, îáà àðãóìåíòà èçâëåêàþòñÿ
èç ñòåêà, çíà÷åíèå, êîòîðîå äîëæíî áûòü ïðèñâîåíî, ñîõðàíÿåòñÿ ïî àäðåñó,
óêàçàííîìó â ïåðâîì àðãóìåíòå, â ñòåê íè÷åãî íå çàíîñèòñÿ.
Áèíàðíûé îïåðàòîð óñëîâíîãî ïåðåõîäà óäàëÿåò äâà àðãóìåíòà èç ñòåêà è
íå ôîðìèðóåò ðåçóëüòàò. Åñëè çíà÷åíèå èñòèííî, òî ñêàíèðóåòñÿ ñëåäóþùèé
çà ÓÏË ñèìâîë, èíà÷å ïðîèñõîäèò ïåðåõîä ê ñèìâîëó, íîìåð êîòîðîãî ñîäåðæèò
âòîðîé àðãóìåíò.
Îïåðàòîð áåçóñëîâíîãî ïåðåõîäà èçâëåêàåò èç ñòåêà íîìåð ïîçèöèè è ïåðåõîäèò
ïî àäðåñó.

14.2 Ãåíåðàöèÿ êîìàíä ïî ÏÎËÈÇó

Ïðè ãåíåðàöèè êîìàíä òàêæå èñïîëüçóåòñÿ ñòåê â êîòîðîì âìåñòî çíà÷åíèé


ñîõðàíÿþòñÿ àäðåñà ïðîìåæóòî÷íûõ ïåðìåííûõ è îïåðàíäîâ.

20
Îñíîâà äëÿ ôîðìèðîâàíèÿ êîìàíä ñîñòàâëÿåò êîäû ðåïðîäóêöèè, ò.å.
íàáîð ìàøèííûõ êîìàíä, ñîîòâåòñòâóþùèõ êàæîìó îòäåëüíî âçÿòîìó îïå-
ðàòîðó ÏÎËÈÇà. Ñòðîêà ÏÎËÈÇà ïðîñìàòðèâàåòñÿ îäèí ðàç ñëåâà íàïðàâî
è ïðè âñòå÷å ñ îïåðàíäàìè èõ èìåíà çàíîñÿòñÿ â ñòåê.
Ïðè âñòðå÷å ñ îïåðàòîðîì èç òàáëèöû âûáèðàþòñÿ ñîîòâåòñòâóþùèå åìó
êîä ðåïðîäóêöèè è â íåå ïîäñòàâëÿþòñÿ èìåíà ïåðåìåííûõ, èçâëå÷åííûå
èç ñòåêà. Åñëè êîìàíäà ôîðìèðóåò ðåçóëüòàò, òî èìÿ ðåçóëüòàòà çàìåùàåò
îïåðàíäû, ïðîñìàòðèâàåìûå èç ñòåêà.
Ñôîðìèðîâàííàÿ ïðîäóêöèÿ ïîìåùàåòñÿ â âûõîäíîé ôàéë.

14.3 Òåòðàäû è òðèàäû

Òåòðàäîé (÷åòâåðêîé) áóäåì íàçûâàòü çàïèñü áèíàðíîé îïåðàöèè â âèäå:


<îïåðàöèÿ>
<îïåðàíä 1>
<îïåðàíä 2>
<ðåçóëüòàò>
Îïòèìàëüíûì ÿâëÿåòñÿ ïðåäñòàâëåíèÿ âíóòðåííåé ôîðìû â âèäå òðèà-
äû. Ñïîñîá íå òðåáóåò áîëüøîãî êîëè÷åñòâà ïàìÿòè äëÿ âíóòðåííèõ ïåðå-
ìåííûõ.
Ïîëå ðåçóëüòàò ó íèõ îòñòóòñòâóåò è åñëè âïîñëåäñòâèè íåîáõîäèìî èñ-
ïîëüçîâàíèå ðåçóëüòàòà êàêîé-ëèáî îïåðàöèè, òî íà ýòó îïåðàöèþ ñòàâèòñÿ
ññûëêà.
Òðèàäû çàíèìàþò ìåíüøå ìåñòà, ÷åì òåòðàäû, íî ïðè ðàáîòå ñ íèìè
íåîáõîäèìû âûÿñíÿòü, ðåçóëüòàòû êàêèõ îïåðàöèé íóæíû â äàëüíåéøåì è
õðàíèòü îïèñàíèå ýòèõ îïåðàöèé.
Äîñòîèíñòâà òðèàä ïî ñðàâíåíèþ ñ ïîëèçîì î÷åâèäíû: îíè ïðåäñòàâëÿ-
þò ïîñëåäîâàòåëüíîñòü â âèäå îäíîñâÿçíîãî\äâóñâÿçíîãî ñïèñêà, ýëåìåíòû
êîòîðîãî ìîæíî ëåãêî ïåðåñòàâëÿòü äëÿ ìàøèííî çàâèñèìîé îïòèìèçàöèè.

15 Îñíîâíûå ôàçû òðàíñëÿöèè.

Òðàíñëÿòîðîì áóäåì íàçûâàòü ïðîãðàììó ïåðåâîäà òåêñòà ïðîãðàììû ñ èñõîäíîãî


ÿçûêà íà öåëåâîé.
Òðàíñëÿòîðû áûâàþò äâóõ âèäîâ:

1. Êîìïèëÿòîðû

2. Èíòåðïðåòàòîðû

Êîìïèëÿòîðû öåëèêîì ïåðåâîäÿò ïðîãðàììó â îáúåêòíûé êîä, êîòîðûé ìîæåò


áûòü ïðåîáðàçîâàí â èñïîëíÿåìûé ôàéë.
Èíòåðïðåòàòîð èñïîëüçóåò êàæäóþ êîìàíäó ïî îòäåëüíîñòè.
Ìàòåìàòè÷åñêàÿ ëèíãâèñòèêà - íàóêà, êîòîðàÿ çàíèìàåòñÿ ôîðìàëüíûìè
ìåòîäàìè ïîñòðîåíèÿ ÿçûêîâ.

21
Ðàçäåëà ìàòåìàòè÷åñêîé ëèíãâèñòèêè, èçó÷àþùåé ñïîñîáû îïèñàíèÿ ÿçûêîâ,
ïîñòðîåíèÿ àëãîðèòìîâ òðàíñëÿöèè, íàçûâàåòñÿ òåîðèåé ôîðìàëüíûõ ãðàììàòèê.
Ñèíòàêñèñ - ñâîä ïðàâèë, îïðåäåëÿþùèõ ïðàâèëüíîñòü ïîñòðîåíèÿ öåïî÷åê
ÿçûêà.
Ñåìàíòèêà - îïðåäåëÿåò ñìûñëîâóþ ïðàâèëüíîñòü.
Îñíîâíûå ôàçû êîìïèëÿöèè ïðîãðàììû:

1. Ëåêñè÷åñêèé àíàëèç - ñêàíèðîâàíèå.


Ïðåîáðàçóåò êîä ïðîãðàììû â öåïî÷êó ëåêñåì.

2. Ñèíòàêñè÷åñêèé àíàëèç - ïðîâåðÿåò, óäîâëåòâîðÿåò ëè öåïî÷êà ëåêñåì


òðåáîâàíèÿì, íàëîæåííûì íà ÿçûê ïðîãðàììèðîâàíèÿ. Ñâîäèò ïðîãðàììó
ê åäèíñòâåííîìó ïåðâîíà÷àëüíîìó ñèìâîëó. Âûïîëíÿåòñÿ ñ ïîìîùüþ
ïðîãðàììû, ïîñòðîåííîé ïî çàäàííîé ãðàììàòèêå ÿçûêà (ðàçáîð, ñèíòàêñè÷åñêèé
ðàçáîð, ïàðñèíã).

3. Ñåìàíòè÷åñêèé àíàëèç. ßâëÿåòñÿ ñèíòàêñè÷åñêè óïðàâëÿåìûì ïðîöåññîì


è çàêëþ÷àåòñÿ â îïðåäåëåíèè ñìûñëîâîãî çíà÷åíèÿ êîíñòðóêöèè.
Ýòàïû:

(a) Ñèíòàêñè÷åñêèé àíàëèçàòîð ðàñïîçíàåò êîíñòðóêöèþ ÿçûêà.

(b) Âûçûâàåòñÿ ñîîòâåòñòâóþùàÿ ñåìàíòè÷åñêàÿ ïîäïðîãðàììà.

(c) Ýòà ïðîãðàììà ôîðìèðóåò âíóòðåííþþ ôîðìó ïðîãðàììû (ÂÔÏ). Â


êà÷åñòâå ÂÔÏ ìîæíî èñïîëüçîâàòü ÏÎËÈÇ, ïåòðàäó èëè òåòðàäó.

Ïåòðàäà:

(a) Îïåðàöèÿ

(b) Ïåðâûé îïåðàíä

(c) Âòîðîé îïåðàíä

(d) Ðåçóëüòàò

4. Ìàøèííî-íåçàâèñèìàÿ îïòèìèçàöèÿ.

5. Ðàñïðåäåëåíèå ïàìÿòè.

6. Ãåíåðàöèÿ êîäà.

7. Ìàøèííî-çàâèñèìàÿ îïòèìèçàöèÿ.

8. Ñáîðêà ïðîãðàììû.

Ðåçóëüòàò: îáúåêòíûé ìîäóëü. Ýòàïû 5-8 ÿâëÿþòñÿ ìàøèííî-çàâèñèìûìè,


îñòàëüíûå- ìàøèííî íåçàâèñèìûìè.
Êîíòåêñò êîìïèëÿòîðà.
Äëÿ ñîçäàíèÿ êîíå÷íîãî èñïîëíÿåìîãî ôàéëà òðåáóåòñÿ òàêæå äðóãèå
ïðîãðàììû, òàêèå êàê ïðåïðîöåññîð çàãðóç÷èê è ðåäàêòîðû ñâÿçè.

22
Èñõîäíûé êîä ïðîãðàììû ìîæåò áûòü ðàçäåëåí íà ìîäóëè, â íåé ìîãóò
ñîäåðæàòüñÿ äèðåêòèâû óñëîâèé êîìïèëÿòîðà, íàñòðîéêè êîìïèëÿòîðà.
Ñáîð åäèíîé èñõîäíîé ïðîãðàììû âûïîëíÿåò ïðåïðîöåññîð.
Íà âûõîäå êîìïèëÿòîðà ñîçäàåòñÿ öåëåâàÿ ïðîãðàììà, ïðåäñòàâëÿþùàÿ
ñîáîé ïåðåìåùàåìûé îáúåêòíûé êîä, êîòîðûé çàòåì ñâÿçûâàåòñÿ â èñïîëíÿåìûé
ôàéë âìåñòå ñ çàãðóç÷èêîì.
Äëÿ ñâÿçûâàíèÿ ìîæåò òðåáîâàòüñÿ êðîìå èñõîäíîãî ôàéëà îáúåêòíûé
ôàéëû áèáëèîòåê, èñïîëüçóåìûõ â ýòîé ïðîãðàììå.
 òàêèõ îáúåêòíûõ ôàéëàõ ñîäåðæàòñÿ:

• Ñèìâîëüíûå îáîçíà÷åíèÿ ôóíêöèé, ïðåäíàçíà÷åííûõ äëÿ èñïîëüçîâàíèÿ


â äðóãèõ îáúåêòíûõ ôàéëàõ.

• Ñèìâîëû îïðåäåëåííûå â äðóãèõ îáúåêòíûõ ôàéëàõ è èñïîëüçóåìûå â


äðóãîé ïðîãðàììå.

• Âíóòðåííèå ñèìâîëû ïîçâîëÿþùèå ïåðåìåùàòü êîä îáúåêòíîãî ôàéëà


ïî ëþáîìó àäðåñó.

23