Ãëàâà 8. Áëîêè, ëîêàëüíîñòü è îáëàñòü äåéñòâèÿ

             Áëîêè ñîñòîÿò èç îïèñàíèé, êîòîðûå çàïèñàíû è ñêîìáèíèðîâàíû

        â ëþáîì ïîðÿäêå, è îïåðàòîðîâ. Êàæäûé áëîê ÿâëÿåòñÿ ÷àñòüþ îïèñà-

        íèÿ ïðîöåäóðû èëè ôóíêöèè,  èëè ÷àñòüþ ïðîãðàììû èëè ìîäóëÿ.  Âñå

        èäåíòèôèêàòîðû è ìåòêè,  îáúÿâëåííûå â ðàçäåëå îïèñàíèé, ÿâëÿþòñÿ

        äëÿ áëîêà ëîêàëüíûìè.

Ñèíòàêñèñ

             Â îáùåì âèäå ëþáîé áëîê èìååò ñëåäóþùèé ôîðìàò:

 

                   ÚÄÄÄÄÄÄÄÄÄÄ¿     ÚÄÄÄÄÄÄÄÄÄÄ¿

         áëîê ÄÄÄÄ>³  ðàçäåë  ÃÄÄÄÄ>³  ðàçäåë  ÃÄÄÄÄ>

                   ³ îïèñàíèÿ ³     ³îïåðàòîðîâ³

                   ÀÄÄÄÄÄÄÄÄÄÄÙ     ÀÄÄÄÄÄÄÄÄÄÄÙ

 

         ðàçäåë    ÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄ>

         îáúÿâëåíèÿ    ^     ³                              ^     ³

                       ³     ³    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿      ³     ³

                       ³     ÃÄÄÄ>³  ðàçäåë îïèñàíèÿ ÃÄÄÄÄÄÄ´     ³

                       ³     ³    ³      ìåòîê       ³      ³     ³

                       ³     ³    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ      ³     ³

                       ³     ³    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿      ³     ³

                       ³     ÃÄÄÄ>³  ðàçäåë îïèñàíèÿ ÃÄÄÄÄÄÄ´     ³

                       ³     ³    ³     êîíñòàíò     ³      ³     ³

                       ³     ³    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ      ³     ³

                       ³     ³    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿      ³     ³

                       ³     ÃÄÄÄ>³  ðàçäåë îïèñàíèÿ ÃÄÄÄÄÄÄ´     ³

                       ³     ³    ³      òèïîâ       ³      ³     ³

                       ³     ³    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ      ³     ³

                       ³     ³    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿      ³     ³

                       ³     ÃÄÄÄ>³  ðàçäåë îïèñàíèÿ ÃÄÄÄÄÄÄ´     ³

                       ³     ³    ³    ïåðåìåííûõ    ³      ³     ³

                       ³     ³    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ      ³     ³

                       ³     ³    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿      ³     ³

                       ³     ÃÄÄÄ>³ îïåðàòîð exports ÃÄÄÄÄÄÄ´     ³

                       ³     ³    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ      ³     ³

                       ³     ³    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿      ³     ³

                       ³     ÀÄÄÄ>³  ðàçäåë îïèñàíèÿ ÃÄÄÄÄÄÄÙ     ³

                       ³          ³ïðîöåäóð è ôóíêöèé³            ³

                       ³          ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ            ³

                       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

             Ðàçäåë îïèñàíèÿ ìåòîê - ýòî òà ÷àñòü áëîêà,  ãäå îïèñûâàþòñÿ

        ìåòêè,  ïðèñâàèâàåìûå îïåðàòîðàì â ñîîòâåòñòâóþùåì ðàçäåëå îïåðà-

        òîðîâ. Êàæäàÿ ìåòêà äîëæíà ïîìå÷àòü òîëüêî îäèí îïåðàòîð.

 

 

          ðàçäåë           ÚÄÄÄÄÄÄÄ¿       ÚÄÄÄÄÄÄÄ¿      ÚÄÄÄ¿

          îïèñàíèÿ ÄÄÄÄÄÄÄ>³ label ÃÄÄÄÄÄÄ>³ ìåòêà ÃÄÄÂÄÄ>³ ; ÃÄÄÄ>

          ìåòîê            ÀÄÄÄÄÄÄÄÙ   ^   ÀÄÄÄÄÄÄÄÙ  ³   ÀÄÄÄÙ

                                       ³   ÚÄÄÄ¿      ³

                                       ÀÄÄÄ´ , ÃÄÄÄÄÄÄÙ

                                           ÀÄÄÄÙ

 

             Ìåòêîé ìîæåò áûòü èäåíòèôèêàòîð èëè ïîñëåäîâàòåëüíîñòü öèôð.

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

        õîäèòüñÿ â äèàïàçîíå îò 0 äî 9999.

 

             Ðàçäåë îïèñàíèÿ êîíñòàíò ñîäåðæèò îïèñàíèÿ êîíñòàíò, ëîêàëü-

        íûõ äëÿ ýòîãî áëîêà.

 

         ðàçäåë         ÚÄÄÄÄÄÄÄ¿       ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿

         îïèñàíèÿ ÄÄÄÄÄ>³ const ÃÄÄÄÄÂÄ>³  îïèñàíèå  ÃÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄ>

         êîíñòàíò       ÀÄÄÄÄÄÄÄÙ ^  ³  ³ êîíñòàíòû  ³        ^  ³

                                  ³  ³  ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ        ³  ³

                                  ³  ³  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³  ³

                                  ³  ³  ³     îïèñàíèå      ³ ³  ³

                                  ³  ÀÄ>³   òèïèçèðîâàííîé  ÃÄÙ  ³

                                  ³     ³     êîíñòàíòû     ³    ³

                                  ³     ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ    ³

                                  ÀÄÙ

 

             Ðàçäåë îïèñàíèÿ òèïîâ âêëþ÷àåò îïèñàíèÿ âñåõ òèïîâ â áëîêå.

 

         ðàçäåë         ÚÄÄÄÄÄÄÄ¿       ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿

         îïèñàíèÿ ÄÄÄÄÄ>³ type  ÃÄÄÄÄÄÄ>³  îïèñàíèå  ÃÄÄÄÄÂÄÄÄ>

         òèïîâ          ÀÄÄÄÄÄÄÄÙ  ^    ³    òèïà    ³    ³

                                   ³    ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ    ³

                                   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

 

             Ðàçäåë îïèñàíèÿ ïåðåìåííûõ ñîñòîèò èç  îïèñàíèÿ  ïåðåìåííûõ,

        ëîêàëüíûõ äëÿ ýòîãî áëîêà.

 

         ðàçäåë         ÚÄÄÄÄÄ¿       ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿

         îïèñàíèÿ ÄÄÄÄÄ>³ var ÃÄÄÄÄÄÄ>³  îïèñàíèå  ÃÄÄÄÄÂÄÄÄ>

         ïåðåìåííûõ     ÀÄÄÄÄÄÙ  ^    ³ ïåðåìåííîé ³    ³

                                 ³    ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ    ³

                                 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

             Ðàçäåë îïèñàíèÿ  ïðîöåäóð è ôóíêöèé ñîñòîèò èç îïèñàíèÿ ïðî-

        öåäóð è ôóíêöèé, ëîêàëüíûõ äëÿ ýòîãî áëîêà.

 

 

         ðàçäåë                 ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿

         îïèñàíèÿ ÄÄÄÄÄÄÄÄÄÄÄÂÄ>³  îïèñàíèå  ÃÄÄÄÄÄÂÄÄÄÄ>

         ïðîöåäóð è       ^  ³  ³ ïðîöåäóðû  ³  ^  ³

         ôóíêöèé          ³  ³  ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ  ³  ³

                          ³  ³  ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿  ³  ³

                          ³  ÀÄ>³  îïèñàíèå  ÃÄÄÙ  ³

                          ³     ³  ôóíêöèè   ³     ³

                          ³     ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ     ³

                          ³     ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿     ³

                          ÃÄÄÄÄ>³  îïèñàíèå  ÃÄÄÄÄÄ´

                          ³     ³êîíñòðóêòîðà³     ³

                          ³     ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ     ³

                          ³     ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿     ³

                          ÃÄÄÄÄ>³  îïèñàíèå  ÃÄÄÄÄÄ´

                          ³     ³äåñòðóêòîðà ³     ³

                          ³     ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ     ³

                          ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

              îïåðàòîðå  exports  ïåðå÷èñëÿþòñÿ âñå ïðîöåäóðû è ôóíêöèè,

        êîòîðûå ýêñïîðòèðóþòñÿ äàííîé ïðîãðàììîé èëè äèíàìè÷åñêè êîìïîíó-

        åìîé áèáëèîòåêîé.  Îïåðàòîð exports äîïóñêàåòñÿ òîëüêî âî âíåøíåì

        ðàçäåëå îïèñàíèé ïðîãðàììû èëè äèíàìè÷åñêè êîìïîíóåìîé áèáëèîòåêè

        - â ðàçäåëå îïèñàíèé ïðîöåäóðû,  ôóíêöèè èëè ìîäóëÿ åãî èñïîëüçî-

        âàòü íåëüçÿ.

 

             Ðàçäåë îïåðàòîðîâ  îïðåäåëÿåò  îïåðàòîðû èëè àëãîðèòìè÷åñêèå

        äåéñòâèÿ, êîòîðûå âûïîëíÿþòñÿ â áëîêå.

 

         ðàçäåë           ÚÄÄÄÄÄÄÄÄÄÄÄ¿

         îïåðàòîðîâ ÄÄÄÄÄ>³ ñîñòàâíîé ÃÄÄÄÄÄ>

                          ³  îïåðàòîð ³

                          ÀÄÄÄÄÄÄÄÄÄÄÄÙ

Ïðàâèëà äëÿ îáëàñòè äåéñòâèÿ

             Íàëè÷èå èäåíòèôèêàòîðà èëè ìåòêè â îïèñàíèè îçíà÷àåò îïðåäå-

        ëåíèå èäåíòèôèêàòîðà èëè ìåòêè.  Êàæäûé ðàç,  êîãäà èäåíòèôèêàòîð

        èëè ìåòêà âñòðå÷àþòñÿ â ïðîãðàììå, îíè äîëæíû íàõîäèòüñÿ â îáëàñ-

        òè äåéñòâèÿ ýòîãî îïèñàíèÿ.

Îáëàñòü äåéñòâèÿ äëÿ áëîêà

             Îáëàñòü äåéñòâèÿ  èäåíòèôèêàòîðà èëè ìåòêè â îïèñàíèè ìåòêè,

        êîíñòàíòå,  òèïà, ïåðåìåííîé, ïðîöåäóðû èëè ôóíêöèè ðàñïðîñòðàíÿ-

        åòñÿ  îò èõ îïèñàíèÿ äî êîíöà òåêóùåãî áëîêà,  âêëþ÷àÿ âñå áëîêè,

        âõîäÿùèå â òåêóùèé áëîê. Íèæå ïðèâîäèòñÿ íåñêîëüêî èñêëþ÷åíèé.

 

             Èäåíòèôèêàòîð èëè ìåòêà,  îïèñàííûå âî âíåøíåì áëîêå,  ìîãóò

        çàíîâî îïèñûâàòüñÿ âî âíóòðåííåì áëîêå, âõîäÿùåì âî âíåøíèé áëîê.

        Äî òî÷êè îïèñàíèÿ âî âíóòðåííåì áëîêå èëè ïîñëå êîíöà  âëîæåííîãî

        áëîêà èäåíòèôèêàòîð èëè ìåòêà ïðåäñòàâëÿþò ýëåìåíò,  îïèñàííûé âî

        âíåøíåì îõâàòûâàþùåì áëîêå.

 

             program Outer;          { íà÷àëî âíåøíåé îáëàñòè äåéñòâèÿ ú

             type

               I = Integer;          { îïðåäåëÿåò I êàê Integer }

             var

               T: I;                 { îïðåäåëÿåò T êàê öåëî÷èñëåííóþ

                                       ïåðåìåííóþ }

             procedure Inner;        { íà÷àëî âíóòðåííåãî áëîêà }

             type

               T = I;                { ïåðåîïðåäåëÿåò T ñ òèïîì Integer }

             var

               I: T;                 { ïåðåîïðåäåëÿåò I êàê öåëî÷èñëåííóþ

                                       ïåðåìåííóþ }

             begin

               I := 1;               { êîíåö âëîæåííîãî áëîêà }

             end;

 

             begin

               T := 1;               { êîíåö âíåøíåãî áëîêà }

             end.

Îáëàñòü äåéñòâèÿ çàïèñè

             Îáëàñòü äåéñòâèÿ èäåíòèôèêàòîðà ïîëÿ, îïèñàííîãî â îïðåäåëå-

        íèè çàïèñè,  ïðîñòèðàåòñÿ îò òî÷êè îïèñàíèÿ äî êîíöà  îïðåäåëåíèÿ

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

        åò äåñèãíàòîðû ïîëÿ è îïåðàòîðû with íàä ññûëêàìè  íà  ïåðåìåííóþ

        äàííîãî òèïà çàïèñè.

 

                   Ïðèìå÷àíèå: Î òèïå çàïèñü ðàññêàçûâàåòñÿ â Ãëàâå 4.

Îáëàñòü äåéñòâèÿ îáúåêòà

             Îáëàñòü äåéñòâèÿ èäåíòèôèêàòîðà ýëåìåíòà,  îïèñàííîãî â îáú-

        åêòíîì òèïå,  ïðîñòèðàåòñÿ îò òî÷êè îïèñàíèÿ äî êîíöà îïðåäåëåíèÿ

        îáúåêòíîãî òèïà è ðàñïðîñòðàíÿåòñÿ íà âñå äî÷åðíèå îáúåêòíûå òèïû

        è  áëîêè âñåõ îïèñàíèé ìåòîäîâ îáúåêòíîãî òèïà.  Îáëàñòü äåéñòâèÿ

        èäåíòèôèêàòîðîâ ýëåìåíòà âêëþ÷àåò äåñèãíàòîðû  ïîëÿ  è  îïåðàòîðû

        with íàä ññûëêàìè íà ïåðåìåííóþ äàííîãî îáúåêòíîãî òèïà.

 

                   Ïðèìå÷àíèå: î òèïå çàïèñü ðàññêàçûâàåòñÿ â Ãëàâå 4.

Îáëàñòü äåéñòâèÿ ìîäóëÿ

             Îáëàñòü äåéñòâèÿ èäåíòèôèêàòîðîâ,  îïèñàííûõ â  èíòåðôåéñíîé

        ñåêöèè ìîäóëÿ,  ïîä÷èíÿåòñÿ  ïðàâèëàì  îáëàñòè  äåéñòâèÿ  áëîêà è

        ðàñïðîñòðàíÿåòñÿ íà âñåõ êëèåíòîâ ìîäóëÿ.  Äðóãèìè ñëîâàìè, ïðîã-

        ðàììû è ìîäóëè,  ñîäåðæàùèå îïåðàòîðû uses (îïåðàòîðû èñïîëüçîâà-

        íèÿ) èìåþò äîñòóï ê èäåíòèôèêàòîðàì, êîòîðûå îïèñàíû â èíòåðôåéñ-

        íîé ÷àñòè ìîäóëåé, óêàçàííûõ â ýòèõ îïåðàòîðàõ uses.

 

             Êàæäûé ìîäóëü â îïåðàòîðå uses îïðåäåëÿåò ñâîþ îáëàñòü äåéñ-

        òâèÿ,  êîòîðàÿ îõâàòûâàåò îñòàëüíûå ìîäóëè è ïðîãðàììó  â  öåëîì.

        Ïåðâûé ìîäóëü â îïåðàòîðå uses ïðåäñòàâëÿåò ñàìóþ âíåøíþþ îáëàñòü

        äåéñòâèÿ,  à ïîñëåäíèé ìîäóëü ïðåäñòàâëÿåò ñàìóþ  âíóòðåííþþ  îá-

        ëàñòü äåéñòâèÿ.  Ýòî îçíà÷àåò, ÷òî åñëè äâà èëè áîëåå ìîäóëåé ñî-

        äåðæàò îïèñàíèå îäíîãî è òîãî æå èäåíòèôèêàòîðà,  òî ïðè  íåóòî÷-

        íåííîì îáðàùåíèè ê ýòîìó èäåíòèôèêàòîðó áóäåò âûáðàí òîò âàðèàíò,

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

        âû  ìîæåòå  âûáðàòü  ëþáîé  âàðèàíò ýòîãî èäåíòèôèêàòîðà,  óêàçàâ

        óòî÷íåííûé èäåíòèôèêàòîð.

 

             Èäåíòèôèêàòîðû âñòðîåííûõ êîíñòàíò,  òèïîâ, ïåðåìåííûõ, ïðî-

        öåäóð è  ôóíêöèé  Borland Pascal äåéñòâóþò,  êàê åñëè áû îíè áûëè

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

        â öåëîì. Â äåéñòâèòåëüíîñòè ýòè ñòàíäàðòíûå îáúåêòû îïèñàíû â ìî-

        äóëå System,  êîòîðûé èñïîëüçóåòñÿ ëþáîé ïðîãðàììîé  èëè  ìîäóëåì

        ïðåæäå ëþáîãî ìîäóëÿ,  óêàçàííîãî â îïåðàòîðå uses. Ýòî îçíà÷àåò,

        ÷òî ëþáîé ìîäóëü èëè ïðîãðàììà ìîãóò  ïåðåîïðåäåëèòü  ñòàíäàðòíûå

        èäåíòèôèêàòîðû,  à îáðàùåíèå ê íèì ìîæåò áûòü âûïîëíåíî ñ ïîìîùüþ

        óòî÷íåííîãî (ñîñòàâíîãî) èäåíòèôèêàòîðà, íàïðèìåð, System.Integer