Cтраница 3
В задании, например, могут присутствовать такие шаги: транс-ляция исходного модуля и получение объектного модуля / редактирование объектного модуля и создание программной фазы; загрузка полученной фазы в основную память и ее исполнение; : каталогизация исходного модуля в библиотеку исходных модулей; , каталогизация объектного модуля в библиотеку объектных моду-лей федактирование объектного модуля и каталогизация полученного абсолютного модуля в библиотеку абсолютных модулей; выполнение обслуживающих и вспомогательных программ; выполнение библиотечных функций; выполнение программ пользователя. [31]
Задаваемые программистом на исходном языке связи между модулями, в том числе между модулями программиста и системными модулями, РЕДАКТОР преобразует в абсолютные адреса, вырабатывая программную фазу. Структура программ, состоящих из многих фаз, планируется программистом на исходном языке, но не все языки программирования имеют для этого достаточно выразительные средства. [32]
Абсолютный модуль, или программная фаза, является результатом работы РЕДАКТОРА. Программная фаза собирается РЕДАКТОРОМ из одного или из нескольких независимо транслированных объектных модулей, часть которых вызывается из библиотеки. [33]
Объектные модули, получаемые в системе в результате трансляции, непригодны для непосредственного исполнения на ЭВМ. Для формирования программной фазы они должны еще пройти этап редактирования. На этом этапе объектные модули обрабатываются программой РЕДАКТОР. [34]
Абсолютный модуль как результат работы РЕДАКТОРА заносится в библиотеку абсолютных модулей временно ( при отсутствии задания на каталогизацию) или постоянно. Он представляет собой программную фазу, готовую к выполнению. [35]
Объектные модули проходят еще один этап - этап редактирования, на котором они обрабатываются программой РЕДАКТОР. После редактирования получаются программные фазы, готовые к выполнению. Программная фаза ( абсолютный модуль) - это программный объект, не подлежащий дроблению при вызове в основную память для выполнения. [36]
Программа РЕДАКТОР предназначена для формирования готовых к выполнению программ из объектных модулей, создаваемых трансляторами ДОС ЕС. Эта программа формирует программные фазы, записывает их в доступную область библиотеки абсолютных модулей, выполняя при этом коррекцию текста модулей согласно заданному адресу загрузки, автоматическое включение недостающих модулей из библиотек и выбирая точки входа в программу и в отдельные фазы. Она является самоперемещающейся программой, выполняемой в любом разделе памяти емкостью не менее 10 Кбайт. [37]
Все программные модули, как правило, хранятся в соответствующей библиотеке - исходных, объектных или абсолютных модулей. В библиотеке абсолютных модулей хранятся в виде программных фаз как программы самой операционной с-стемы ( системные программы), так и программы, принадлежащие конкретным абонентам. [38]
Под выполнением проблемной программы понимается трансляция, редактирование или выполнение программной фазы. Имя фазы может отсутствовать, если ее выполнение следует сразу же за редактированием в одном задании. [39]
Отлаживаемая программа является входной информацией для ОТЛАДКИ и поступает в его распоряжение в виде объектных модулей. Программа ОТЛАДКА обрабатывает эти объектные модули подобно РЕДАКТОРУ и формирует из них программные фазы, в которые включается информация, соответствующая отладочным запросам программиста. Подготовленные таким образом программные фазы предназначены для непосредственного выполнения в данном задании и не могут каталогизироваться в библиотеку абсолютных модулей. [40]
Как уже отмечалось, АВТОТЕСТ предназначен для оказания помощи программисту при отладке программ. АВТОТЕСТ, подобно РЕДАКТОРУ, обрабатывает эти объектные модули и формирует из них программные фазы, в которые включается информация, соответствующая отладочным запросам программиста. АВТОТЕСТ позволяет: без перетрансляции заменить, добавить или удалить некоторые команды отлаживаемой программы, в затребованных точках выполнения программы напечатать интересующую программиста информацию ( например, содержимое указанных областей основной памяти, содержимое общих регистров), получить список фаз с указанием адресов их загрузки в основную память. [41]
На этапе редактирования происходит формирование отдельных частей программы с перекрытием. Для этой цели используется оператор PHASE, в котором указывается имя и адрес загрузки редактируемой программной фазы. [42]
Каждый объектный модуль может состоять из нескольких более мелких частей - программных секций, обрабатываемых РЕДАКТОРОМ независимо друг от друга. Программные секции, принадлежащие одному и тому же объектному модулю, могут размещаться в различных программных фазах. Разделение объектного модуля на программные секции и выдача указаний РЕДАКТОРУ, в какую программную фазу должна быть включена та или иная программная секция, осуществляется программистом. [43]
Заметим, что программная фаза перед выполнением всегда находится в библиотеке абсолютных модулей - единственной библиотеке, которая обязательно должна присутствовать в ДОС. Поэтому отличие режима LINK от режима CATAL состоит в том, что в первом случае программная фаза лишь временно заносится в эту библиотеку и по окончании действия режима удаляется из нее, в то время как при режиме CATAL программная фаза заносится в библиотеку на постоянное хранение. [44]
Объектный модуль может рассматриваться РЕДАКТОРОМ либо как неделимая единица обработки, либо как совокупность более мелких частей, называемых программными секциями. Программные секции, входящие в один объектный модуль, обрабатываются РЕДАКТОРОМ независимо друг от друга и могут быть помещены в различные программные фазы. Разделение объектного модуля на программные секции осуществляет программист на исходном языке, и он же указывает РЕДАКТОРУ, в какую программную фазу должна быть включена та или иная программная секция. Например, из объектного модуля, который состоит из трех программных секций С 1, С 2, С 3, можно построить программу, состоящую из двух фаз А и В В фазу А могут быть включены С 1 и С 3, а программная секция С 2 этого же модуля может образовывать фазу В. [45]