Â.À.Ñåðåáðÿêîâ, Ì.Ï.Ãàëî÷êèí, Ä.Ð.Ãîí÷àð, Ì.Ã.Ôóðóãÿí

 

«Òåîðèÿ è ðåàëèçàöèÿ ÿçûêîâ ïðîãðàììèðîâàíèÿ»,

 

ó÷åáíîå ïîñîáèå äëÿ ÂÓÇîâ ïî ñïåöèàëüíîñòè

ïðèêëàäíàÿ ôèçèêà è ìàòåìàòèêà

(Ì.: ÌÇ-Ïðåññ, 2003 ã.)

 

 

 

Ñîäåðæàíèå

 

 

Ïðåäèñëîâèå

1.            Ââåäåíèå

1.1.         Ìåñòî êîìïèëÿòîðà â ïðîãðàììíîì îáåñïå÷åíèè

1.2.         Ñòðóêòóðà êîìïèëÿòîðà

 

Ñòðàíèöû

ïî 1-ìó

èçäàíèþ

 

7

8

8

9

 

 

 

2.            ßçûêè è èõ ïðåäñòàâëåíèå

               2.1.         Àëôàâèòû, öåïî÷êè è ÿçûêè

               2.2.         Ïðåäñòàâëåíèå ÿçûêîâ

               2.3.         Ãðàììàòèêè

                              2.3.1.     Ôîðìàëüíîå îïðåäåëåíèå ãðàììàòèêè

                              2.3.2.     Òèïû ãðàììàòèê è èõ ñâîéñòâà

               2.4.         Ìàøèíû Òüþðèíãà

                              2.4.1.     Íåðàçðåøèìîñòü ïðîáëåìû îñòàíîâà

                              2.4.2.     Êëàññ ðåêóðñèâíûõ ìíîæåñòâ

               2.5.         Ñâÿçü ìàøèí Òüþðèíãà è ãðàììàòèê òèïà 0

               2.6.         Ëèíåéíî-îãðàíè÷åííûå àâòîìàòû è èõ

                              ñâÿçü ñ êîíòåêñòíî-çàâèñèìûìè ãðàììàòèêàìè

 

13

13

15

17

17

19

20

22

23

24

 

27

 

 

3.            Ëåêñè÷åñêèé àíàëèç

               3.1.         Ðåãóëÿðíûå ìíîæåñòâà è âûðàæåíèÿ

               3.2.         Êîíå÷íûå àâòîìàòû

               3.3.         Àëãîðèòìû ïîñòðîåíèÿ êîíå÷íûõ àâòîìàòîâ

                              3.3.1.     Ïîñòðîåíèå íåäåòåðìèíèðîâàííîãî êîíå÷íîãî

                                             àâòîìàòà ïî ðåãóëÿðíîìó âûðàæåíèþ

                              3.3.2.     Ïîñòðîåíèå äåòåðìèíèðîâàííîãî êîíå÷íîãî

                                             àâòîìàòà ïî íåäåòåðìèíèðîâàííîìó

                              3.3.3.     Ïîñòðîåíèå äåòåðìèíèðîâàííîãî êîíå÷íîãî

                                             àâòîìàòà ïî ðåãóëÿðíîìó âûðàæåíèþ

                              3.3.4.     Ïîñòðîåíèå äåòåðìèíèðîâàííîãî êîíå÷íîãî

                                             àâòîìàòà ñ ìèíèìàëüíûì ÷èñëîì ñîñòîÿíèé

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

                               ðåãóëÿðíûõ ãðàììàòèê

               3.5.         Ïðîãðàììèðîâàíèå ëåêñè÷åñêîãî àíàëèçà

               3.6.         Êîíñòðóêòîð ëåêñè÷åñêèõ àíàëèçàòîðîâ LEX

 

32

34

36

40

 

40

 

42

 

43

 

47

 

49

53

57

 

 

 

4.            Ñèíòàêñè÷åñêèé àíàëèç

               4.1.         Êîíòåêñòíî-ñâîáîäíûå ãðàììàòèêè è àâòîìàòû ñ

                              ìàãàçèííîé ïàìÿòüþ

               4.2.         Ïðåîáðàçîâàíèÿ ÊÑ-ãðàììàòèê

                              4.2.1.     Àëãîðèòì Êîêà-ßíãåðà-Êàñàìè

               4.3.         Ïðåäñêàçûâàþùèé ðàçáîð ñâåðõó-âíèç

                              4.3.1.     Àëãîðèòì ðàçáîðà ñâåðõó-âíèç

                              4.3.2.     Ôóíêöèè FIRST è FOLLOW

                              4.3.3.     Êîíñòðóèðîâàíèå òàáëèöû

                                             ïðåäñêàçûâàþùåãî àíàëèçàòîðà

                              4.3.4.     LL(1)-ãðàììàòèêè

                              4.3.5.     Óäàëåíèå ëåâîé ðåêóðñèè

                              4.3.6.     Ëåâàÿ ôàêòîðèçàöèÿ

                              4.3.7.     Ðåêóðñèâíûé ñïóñê

                              4.3.8.     Âîññòàíîâëåíèå àíàëèçà ïîñëå

                                             ñèíòàêñè÷åñêèõ îøèáîê

               4.4.         Ðàçáîð ñíèçó-ââåðõ òèïà ñäâèã-ñâ¸ðòêà

                              4.4.1.     Îñíîâà

                              4.4.2.     LR(1)- àíàëèçàòîðû

                              4.4.3.     Êîíñòðóèðîâàíèå LR(1)-òàáëèöû

                              4.4.4.     LR (1)-ãðàììàòèêè

                              4.4.5.     Âîññòàíîâëåíèå àíàëèçà ïîñëå

                                             ñèíòàêñè÷åñêèõ îøèáîê

                              4.4.6.     Âàðèàíòû LR-àíàëèçàòîðîâ

 

62

 

62

69

70

71

71

74

 

77

78

79

80

81

 

83

83

83

85

89

92

 

95

95

 

 

 

5.            Ýëåìåíòû òåîðèè ïåðåâîäà

               5.1.         Ïðåîáðàçîâàòåëè ñ ìàãàçèííîé ïàìÿòüþ

               5.2.         Ñèíòàêñè÷åñêè óïðàâëÿåìûé ïåðåâîä

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

                              5.2.2.     Îáîáùåííûå ñõåìû ñèíòàêñè÷åñêè

                                             óïðàâëÿåìîãî ïåðåâîäà

               5.3.         Àòðèáóòíûå ãðàììàòèêè

                              5.3.1.     Îïðåäåëåíèå àòðèáóòíûõ ãðàììàòèê

                              5.3.2.     Êëàññû àòðèáóòíûõ ãðàììàòèê è èõ ðåàëèçàöèÿ

                              5.3.3.     ßçûê îïèñàíèÿ àòðèáóòíûõ ãðàììàòèê

 

97

97

99

99

 

101

103

104

108

111

 

 

 

6.            Ïðîâåðêà êîíòåêñòíûõ óñëîâèé

               6.1.         Îïèñàíèå îáëàñòåé âèäèìîñòè è áëî÷íîé ñòðóêòóðû

               6.2.         Çàíåñåíèå â ñðåäó è ïîèñê îáúåêòîâ

 

115

115

117

 

 

 

7.            Îðãàíèçàöèÿ òàáëèö ñèìâîëîâ

               7.1.         Òàáëèöû èäåíòèôèêàòîðîâ

               7.2.         Òàáëèöû ðàññòàíîâêè

               7.3.         Òàáëèöû ðàññòàíîâêè ñî ñïèñêàìè

               7.4.         Ôóíêöèè ðàññòàíîâêè

               7.5.         Òàáëèöû íà äåðåâüÿõ

               7.6.         Ðåàëèçàöèÿ áëî÷íîé ñòðóêòóðû

               7.7.         Ñðàâíåíèå ìåòîäîâ ðåàëèçàöèè òàáëèö

124

124

125

128

129

131

135

136

 

 

 

8.            Ïðîìåæóòî÷íîå ïðåäñòàâëåíèå ïðîãðàììû

               8.1.         Ïðåäñòàâëåíèå â âèäå îðèåíòèðîâàííîãî ãðàôà

               8.2.         Òð¸õàäðåñíûé êîä

               8.3.         Ëèíåàðèçîâàííûå ïðåäñòàâëåíèÿ

               8.4.         Âèðòóàëüíàÿ ìàøèíà Java

                              8.4.1.     Îðãàíèçàöèÿ ïàìÿòè

                              8.4.2.     Íàáîð êîìàíä âèðòóàëüíîé ìàøèíû

               8.5.         Îðãàíèçàöèÿ èíôîðìàöèè â ãåíåðàòîðå êîäà

               8.6.         Óðîâåíü ïðîìåæóòî÷íîãî ïðåäñòàâëåíèÿ

 

137

137

139

142

144

145

145

147

148

 

 

 

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

               9.1.         Ìîäåëü ìàøèíû

               9.2.         Äèíàìè÷åñêàÿ îðãàíèçàöèÿ ïàìÿòè

                              9.2.1.     Îðãàíèçàöèÿ ìàãàçèíà ñî ñòàòè÷åñêîé öåïî÷êîé

                              9.2.2.     Îðãàíèçàöèÿ ìàãàçèíà ñ äèñïëååì

               9.3.         Íàçíà÷åíèå àäðåñîâ

               9.4.         Òðàíñëÿöèÿ ïåðåìåííûõ

               9.5.         Òðàíñëÿöèÿ öåëûõ âûðàæåíèé

               9.6.         Òðàíñëÿöèÿ àðèôìåòè÷åñêèõ âûðàæåíèé

               9.7.         Òðàíñëÿöèÿ ëîãè÷åñêèõ âûðàæåíèé

               9.8.         Âûäåëåíèå îáùèõ ïîäâûðàæåíèé

               9.9.         Òðàíñëÿöèÿ îáúåêòíî-îðèåíòèðîâàííûõ ñâîéñòâ

                              ÿçûêîâ ïðîãðàììèðîâàíèÿ

                              9.9.1.     Âèðòóàëüíûå áàçîâûå êëàññû

                              9.9.2.     Ìíîæåñòâåííîå íàñëåäîâàíèå

                              9.9.3.     Åäèíè÷íîå íàñëåäîâàíèå è âèðòóàëüíûå

                                             ôóíêöèè

                              9.9.4.     Ìíîæåñòâåííîå íàñëåäîâàíèå è âèðòóàëüíûå

                                             ôóíêöèè

                              9.9.5.     Âèðòóàëüíûå áàçîâûå êëàññû ñ âèðòóàëüíûìè                                                      ôóíêöèÿìè

               9.10.      Ãåíåðàöèÿ îïòèìàëüíîãî êîäà ìåòîäàìè ñèíòàêñè÷åñêîãî

                              àíàëèçà

                              9.10.1.   Ñîïîñòàâëåíèå îáðàçöîâ

                              9.10.2.   Ñèíòàêñè÷åñêèé àíàëèç äëÿ Ò-ãðàììàòèê

                              9.10.3.   Âûáîð äåðåâà âûâîäà íàèìåíüøåé ñòîèìîñòè

                              9.10.4.   Àòðèáóòíàÿ ñõåìà äëÿ àëãîðèòìà ñîïîñòàâëåíèÿ

                                             îáðàçöîâ

 

149

150

152

154

158

159

160

163

164

172

180

 

184

184

185

 

186

 

187

 

189

 

191

191

195

200

 

202

 

 

 

10.          Ñèñòåìû àâòîìàòèçàöèè ïîñòðîåíèÿ òðàíñëÿòîðîâ

               10.1.      Ñèñòåìà ÑÓÏÅÐ

               10.2.      Ñèñòåìà YACC

 

207

207

209

 

 

 

À.           Ñåìàíòèêà êîíòåêñòíî-ñâîáîäíûõ ÿçûêîâ

               À.1.        Ââåäåíèå

               À.2.        Ôîðìàëüíûå ñâîéñòâà

               À.3.        Ïðîâåðêà íà çàöèêëåííîñòü

               À.4.        Ïðîñòîé ÿçûê ïðîãðàììèðîâàíèÿ

               À.5.        Îáñóæäåíèå

 

212

212

218

223

228

238

 

 

 

B.           Àòðèáóòíûå ãðàììàòèêè

               Â.1.        Ââåäåíèå

               Â.2.        Îïðåäåëåíèå àòðèáóòíûõ ãðàììàòèê

               Â.3.        Àòðèáóòèðîâàííîå äåðåâî ðàçáîðà

               Â.4.        Íåçàöèêëåííûå àòðèáóòíûå ãðàììàòèêè

               Â.5.        Âû÷èñëèòåëüíûå ïîñëåäîâàòåëüíîñòè è êîððåêòíîñòü.

                              Îïðåäåëåíèå âèçèòà

               Â.6.        ×èñòûå ìíîãîâèçèòíûå ãðàììàòèêè

               Â.7.        Àáñîëþòíî íåçàöèêëåííûå àòðèáóòíûå ãðàììàòèêè

               Â.8.        Ïðîñòûå ìíîãîâèçèòíûå àòðèáóòíûå ãðàììàòèêè

               Â.9.        Îäíîâèçèòíûå àòðèáóòíûå ãðàììàòèêè

               Â.10.      Ìíîãîïðîõîäíûå ãðàììàòèêè

 

245

245

246

247

248

250

 

251

253

257

259

260

 

 

 

C.           Çàäà÷è ïî ðàçäåëàì êíèãè

               Ñ.2.        ßçûêè è èõ ïðåäñòàâëåíèå

                              Ñ.2.1.     Àëôàâèòû, öåïî÷êè è ÿçûêè

                              Ñ.2.2.     Ïðåäñòàâëåíèå ÿçûêîâ

                              Ñ.2.3.     Ãðàììàòèêè

               Ñ.3.        Ëåêñè÷åñêèé àíàëèç

                              Ñ.3.1.     Ðåãóëÿðíûå ìíîæåñòâà è âûðàæåíèÿ

                              Ñ.3.2.     Êîíå÷íûå àâòîìàòû

                              Ñ.3.3.     Àëãîðèòìû ïîñòðîåíèÿ êîíå÷íûõ àâòîìàòîâ

                              Ñ.3.4.     Ðåãóëÿðíûå ìíîæåñòâà è èõ ïðåäñòàâëåíèÿ

                              Ñ.3.5.     Àëãåáðàè÷åñêèå ñâîéñòâà ðåãóëÿðíûõ ìíîæåñòâ.

                                             Ëåììà î ðàçðàñòàíèè

               Ñ.4.        Ñèíòàêñè÷åñêèé àíàëèç

                              Ñ.4.1.     ÊÑ-ãðàììàòèêè è ÌÏ-àâòîìàòû

                              Ñ.4.2.     Àëãåáðàè÷åñêèå ñâîéñòâà ÊÑ-ÿçûêîâ.

                                             Ëåììà î ðàçðàñòàíèè

                              Ñ.4.3.     Ïðåîáðàçîâàíèÿ ÊÑ-ãðàììàòèê

                              Ñ.4.4.     Ïðåäñêàçûâàþùèé ðàçáîð ñâåðõó-âíèç

                              Ñ.4.5.     Ðàçáîð ñíèçó-ââåðõ òèïà ñäâèã-ñâ¸ðòêà

               Ñ.5.        Ýëåìåíòû òåîðèè ïåðåâîäà

                              Ñ.5.3.     Àòðèáóòíûå ãðàììàòèêè

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

                              Ñ.9.1.     Òðàíñëÿöèÿ àðèôìåòè÷åñêèõ âûðàæåíèé

                              Ñ.9.2.     Òðàíñëÿöèÿ ëîãè÷åñêèõ âûðàæåíèé

                              Ñ.9.3.     Ãåíåðàöèÿ îïòèìàëüíîãî êîäà ìåòîäàìè

                                             ñèíòàêñè÷åñêîãî àíàëèçà

 

Ëèòåðàòóðà

 

268

268

268

268

269

274

274

276

277

277

277

 

278

278

281

 

282

285

287

290

290

291

291

292

 

292

 

293