12. UniPascal в детайли
75
12.4. Използване на етикета EXIT
Специфичният за UniPascal етикет EXIT се появява в синтактичното описание на
блок, както следва:
Block =
[ Declarations ]
'begin'
   Statement { ';' Statement } [
'exit' ':' 
   Statement { ';' Statement } ]
'end'.
Изпълнението на стандартната процедура RETURN или EXIT (процедурата EXIT, а
не етикета) в тяло на блок, в който няма етикет EXIT, предизвиква принудително
завършване на работата на блока, т.е. управлението се предава на края на блока.
Наличието на етикет EXIT в тялото на блока изменя семантиката на стандартните
процедури EXIT и RETURN. Тогава те предават управлението на етикетирания с EXIT
оператор от този блок. Процедурите RETURN и EXIT, появяващи се след етикета EXIT,
имат обикновената си семантика. Операторите, намиращи се след етикета EXIT до края
на блока, изпълняват функция на завършваща част на този блок. Тези оператори се
изпълняват винаги преди излизане от съответната процедура.
В случаите, когато етикетът EXIT се намира в инициализиращата част на модул,
той има малко по-различно, но близко до това значение (виж описанието на
реализационната част на модул). Пример за използването му в модул е даден в модула
STACK, намиращ се на дистрибутивната дискета.
12.5. Овърлейни процедури
Овърлей на процедурите се реализира без никакви допълнителни (освен
указването на ключовата дума SEGMENT) действия от страна на програмиста.
Използването на овърлейни процедури се налага, ако паметта на компютъра не достига
да побере едновременно кода и данните на програмата.
Овърлейните процедури в UniPascal се зареждат в паметта на микрокомпютъра,
когато се активират. Кодът на процедурата остава в паметта, докато процедурата е
активна или докато е активна активирана от нея процедура. След завършване на
работата паметта, заета от тях, се освобождава (паметта заета за код на процедурата
се освобождава). При ново активиране процедурата се зарежда отново.
За да може във всеки момент да бъде заредена овърлейна процедура,
необходимо е файлът с кода на програмата (или модула) да остане отворен, докато
програмата е активна. Оставянето на отворен файл дава следните отражения върху
работата на операционната система:
*
броят на файловете, които могат да бъдат отворени едновременно от
програмата, се намалява с 1 за всеки файл съдържащ код на овърлейни
процедури;
*
дискетата, върху която е отворен файла, не трябва да се изважда от
флопидисковото устройство, освен ако имате само едно и използвате
възможността на UniDOS да работи с две логически устройства върху едно
физическо. В такъв случай не трябва да сменяте дискетата, която поставяте
за устройство A: или B: (т.е. трябва да ползвате една и съща дискета за
съответните устройства). Замяна на дискета, върху която има отворени
файлове, може да доведе до унищожаване на информацията върху другата
дискета и/или и върху двете.
<<  <  GO  >  >>

Вернуться к началу сайта