Большая техническая энциклопедия
2 4 7
D L N
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я
ТА ТВ ТГ ТЕ ТИ ТО ТР ТУ ТЩ ТЯ

Текст - исходный модуль

 
Текст исходного модуля печатается вместе с порядковыми номерами, присвоенными операторам во время трансляции. Этот текст может содержать сообщения об ошибках в операторе модуля непосредственно за этим оператором. Под теми символами оператора, при анализе которых транслятор не может истолковать оператор как правильный, печатаются знаки & В следующих строках печатаются сообщения об ошибках в этом операторе вместе с их порядковыми номерами. Ошибки, которые нельзя отнести к какому-то конкретному оператору, перечисляются после текста исходного модуля.
Текст любого исходного модуля, входящего в программу на языке ассемблера, рекомендуется разбивать на несколько частей: вводную, описательную и основную. В вводной части указывается назначение исходного модуля и другая дополнительная информация, например фамилия программиста и дата создания программы.
Встретив в тексте исходного модуля системную макрокоманду, Ассемблер использует для построения макрорасширения библиотечное макроопределение. Не будем подробно описывать все системные макрокоманды операционной системы ДОС. Следует отметить, что наборы системных макрокоманд в операционных системах ДОС и ОС отличаются один от другого как составом, так и синтаксисом ( мнемониками и правилами записи операндов) и выполняемыми действиями. По этой причине исходный модуль, составленный на языке Ассемблера и содержащий системные макрокоманды ДОС, не может быть без переделки транслирован и выполнен средствами ОС, и наоборот. Исходные модули, составленные на ФОРТРАКе, от этого недостатка свободны.
Отладочный транслятор преобразует текст исходного модуля в объектный и ( или) интерпретирующий, который может быть выполнен немедленно или в последующих шагах задания.
Объектные модули содержат тексты исходных модулей в машинном коде, дополненные служебной информацией в виде словаря внешних символов и словаря перемещений, и не являются готовыми к выполнению программами. Для получения готовых к выполнению программ объектные модули должны пройти этап редактирования, реализуемый системными обрабатывающими программами редактора связей.
В части 3 помещается текст исходного модуля до его обработки препроцессором. В ней последовательно нумеруется каждая строка ( линия) текста исходного модуля. Эта часть обеспечивается опциями MACR. Часть 4 содержит список сообщений препроцессора об ошибках и появляется при их обнаружении. Если ошибок не было, в этом месте листинга появляется сообщение NO ERROR OR WARNING CONDITION HAS BEEN DETECTED FOR THIS MACRO PASS. Часть 5 печатается при наличии опции SOURCE и представляет собой текст исходного модуля после его обработки препроцессором. Все операторы модуля, в том числе операторы, входящие в состав других операторов, последовательно нумеруются. В части 5 печатается номер ( STMT) первого в каждой строке оператора. В части 6 размещается таблица атрибутов и перекрестных ссылок.
Напомним, что для этого текст исходных модулей, входящих в корневую фазу, должен содержать специал ьный оператор.
Препроцессор представляет собой комплекс программ, используя который программист может модифицировать текст исходного модуля, вставляя в него новые конструкции языка ( операторы или блоки) из библиотечного набора данных до выполнения трансляции. Для выполнения этих действий используются специальные режимы.
Дополнительно по указанию программиста каждый транслятор может вывести на печатающее устройство листинг, содержащий текст исходного модуля, сведения об объектном модуле и диагностические сообщения об ошибках, обнаруженных во время трансляции. Указания программиста называются опциями и задаются в управляющих операторах ЯУЗ или отдельными операторами.
В общем случае задание может состоять из управляющих операторов для управляющей и обрабатывающих программ, текстов исходных модулей и исходных данных для решения задачи.
В операторе 0005 пропущена обязательная для него метка и допущена ошибка в описателе поля. После текста исходного модуля напечатано сообщение о неопределенной метке 1, ссылка на эту метку имеется в операторе 0004, но она не обнаружена нигде в поле-метки.
Листинг транслятора ( рис. 5.1) для каждого исходного модуля состоит из четырех частей. Часть 1 содержит текст исходного модуля с порядковыми номерами, присвоенными операторам во время трансляции. Текст исходного модуля печатается полностью, если действует опция SOURCE. Операторы, содержащие ошибки, появляются в этой части листинга даже при наличии опции NOSOURCE. Часть 2 представляет собой план распределения памяти для объектов исходного модуля. В таблице указывается шестнадцатеричный адрес объекта, отсчитываемый от начала объектного модуля. Адреса элементов общего блока указываются относительно его начала. Часть 3 представляет собой текст объектного модуля в ассемблерной форме. Он содержит номер оператора исходного модуля Фортрана ( STA NUM), метку этого оператора ( LABEL), а также адрес ( LOCATION), операцию ( ОР) и операнды ( OPERAND) соответствующих предложений языка Ассемблера. В графе IDENTIFIER указываются идентификаторы, используемые в исходном модуле. Часть 4 включает список действующих при трансляции опций ( OPTIONS IN EFFECT) и данные ( STATISTICS) о длине модуля и ошибках в нем. Если в ходе трансляции ошибок не обнаружено, то печатается текст NO DIAGNOSTICS GENERATED. На рис. 5.1 показана структура листинга транслятора для одного исходного модуля МАШ, не имеющего ошибок.
При трансляции исходного модуля управляющая фаза транслятора ПЛ / 1 ( которая находится в основной памяти весь период обработки исходного модуля) загружает остальные фазы одна за другой. Каждая фаза однократно обрабатывает текст исходного модуля и удаляется из основной памяти. Фазы, предназначенные для обработки тех конструкций языка, которых нет в транслируемой программе, в основную память не вызываются.
Листинг транслятора для каждого фортран-модуля содержит текст исходного модуля, план распределения памяти и сообщения о найденных ошибках.
В части 3 помещается текст исходного модуля до его обработки препроцессором. В ней последовательно нумеруется каждая строка ( линия) текста исходного модуля. Эта часть обеспечивается опциями MACR. Часть 4 содержит список сообщений препроцессора об ошибках и появляется при их обнаружении. Если ошибок не было, в этом месте листинга появляется сообщение NO ERROR OR WARNING CONDITION HAS BEEN DETECTED FOR THIS MACRO PASS. Часть 5 печатается при наличии опции SOURCE и представляет собой текст исходного модуля после его обработки препроцессором. Все операторы модуля, в том числе операторы, входящие в состав других операторов, последовательно нумеруются. В части 5 печатается номер ( STMT) первого в каждой строке оператора. В части 6 размещается таблица атрибутов и перекрестных ссылок.

Предложение START не порождает никаких элементов в объектной программе. Оно выполняет две функции: информирует Ассемблер о начале текста исходного модуля и указывает Ассемблеру начальное значение счетчика адреса. Для последней цели используется поле операндов предложения START. Если это поле содержит пробелы, то Ассемблер присваивает счетчику адреса начальное значение ноль.
Листинг транслятора ( рис. 5.1) для каждого исходного модуля состоит из четырех частей. Часть 1 содержит текст исходного модуля с порядковыми номерами, присвоенными операторам во время трансляции. Текст исходного модуля печатается полностью, если действует опция SOURCE. Операторы, содержащие ошибки, появляются в этой части листинга даже при наличии опции NOSOURCE. Часть 2 представляет собой план распределения памяти для объектов исходного модуля. В таблице указывается шестнадцатеричный адрес объекта, отсчитываемый от начала объектного модуля. Адреса элементов общего блока указываются относительно его начала. Часть 3 представляет собой текст объектного модуля в ассемблерной форме. Он содержит номер оператора исходного модуля Фортрана ( STA NUM), метку этого оператора ( LABEL), а также адрес ( LOCATION), операцию ( ОР) и операнды ( OPERAND) соответствующих предложений языка Ассемблера. В графе IDENTIFIER указываются идентификаторы, используемые в исходном модуле. Часть 4 включает список действующих при трансляции опций ( OPTIONS IN EFFECT) и данные ( STATISTICS) о длине модуля и ошибках в нем. Если в ходе трансляции ошибок не обнаружено, то печатается текст NO DIAGNOSTICS GENERATED. На рис. 5.1 показана структура листинга транслятора для одного исходного модуля МАШ, не имеющего ошибок.
Для библиотек CL заголовок состоит из имени фазы и ее длины в байтах, текст печатается в 16-ричном формате. Для библиотеки RL заголовок содержит имя модуля и количество блоков, а текст можно выдать в 16-ричном или символьном формате. Для библиотеки SL заголовок содержит полное имя книги ( включая символ подбиблиотеки) и количество блоков, текст символьный с операторами BKEND до и после текста исходного модуля.
Текст исходного модуля печатается вместе с порядковыми номерами, присвоенными операторам во время трансляции. Этот текст может содержать сообщения об ошибках в операторе модуля непосредственно за этим оператором. Под теми символами оператора, при анализе которых транслятор не может истолковать оператор как правильный, печатаются знаки & В следующих строках печатаются сообщения об ошибках в этом операторе вместе с их порядковыми номерами. Ошибки, которые нельзя отнести к какому-то конкретному оператору, перечисляются после текста исходного модуля.
В части 3 помещается текст исходного модуля до его обработки препроцессором. В ней последовательно нумеруется каждая строка ( линия) текста исходного модуля. Эта часть обеспечивается опциями MACR. Часть 4 содержит список сообщений препроцессора об ошибках и появляется при их обнаружении. Если ошибок не было, в этом месте листинга появляется сообщение NO ERROR OR WARNING CONDITION HAS BEEN DETECTED FOR THIS MACRO PASS. Часть 5 печатается при наличии опции SOURCE и представляет собой текст исходного модуля после его обработки препроцессором. Все операторы модуля, в том числе операторы, входящие в состав других операторов, последовательно нумеруются. В части 5 печатается номер ( STMT) первого в каждой строке оператора. В части 6 размещается таблица атрибутов и перекрестных ссылок.
Транслятор проверяет синтаксическую правильность исходного модуля. Информация об ошибках выдается в виде диагностических сообщений. Если ошибка может быть указана в одном операторе исходного модуля, сообщение о ней появляется в тексте модуля непосредственно за этим оператором. Под символами оператора, начиная с которых оператор не может быть истолкован как правильный, печатаются знаки о. В следующих строках печатаются сообщения об ошибках в этом операторе. Ошибки, которые невозможно указать в одном операторе, отмечаются после текста исходного модуля. Операторы исходного модуля, содержащие ошибки, и диагностические сообщения обоих видов печатаются и в том случае, когда установлена опция NOSOURCE, запрещающая вывод текста исходного модуля. Диагностическое сообщение транслятора имеет идентификатор lEYxxxI, где IEY - префикс транслятора, а ххх - трехзначный номер сообщения в передне возможных диагностических сообщений транслятора.
Транслятор проверяет синтаксическую правильность исходного модуля. Информация об ошибках выдается в виде диагностических сообщений. Если ошибка может быть указана в одном операторе исходного модуля, сообщение о ней появляется в тексте модуля непосредственно за этим оператором. Под символами оператора, начиная с которых оператор не может быть истолкован как правильный, печатаются знаки о. В следующих строках печатаются сообщения об ошибках в этом операторе. Ошибки, которые невозможно указать в одном операторе, отмечаются после текста исходного модуля. Операторы исходного модуля, содержащие ошибки, и диагностические сообщения обоих видов печатаются и в том случае, когда установлена опция NOSOURCE, запрещающая вывод текста исходного модуля. Диагностическое сообщение транслятора имеет идентификатор lEYxxxI, где IEY - префикс транслятора, а ххх - трехзначный номер сообщения в передне возможных диагностических сообщений транслятора.
Следующим этапом обработки является трансляция. После трансляции исходный модуль записывается на языке машинных команд ЭВМ. Объектный модуль не может быть непосредственно выполнен на ЭВМ. В нем отсутствуют необходимые стандартные и библиотечные программы. Для окончательного формирования программного модуля следует пройти этап компоновки программы, на котором обеспечивается вызов необходимых стандартных и библиотечных программ, объединение нескольких модулей, загрузка модуля в основную память ЭВМ. После компоновки формируется файл образа задачи, готовый к выполнению на машине. Если в процессе трансляции, компоновки или выполнения будут обнаружены ошибки, то операционной системой выдаются диагностические сообщения о типе ошибки. Для исправления ошибок необходимо во всех случаях возвращаться на этап редактирования и корректировать текст исходного модуля.
 
Loading
на заглавную 10 самыхСловариО сайтеОбратная связь к началу страницы

© 2008 - 2014
словарь online
словарь
одноклассники
XHTML | CSS
Лицензиар ngpedia.ru
1.8.11