Cтраница 1
Листинг транслятора ( рис. 5.1) для каждого исходного модуля состоит из четырех частей. Часть 1 содержит текст исходного модуля с порядковыми номерами, присвоенными операторам во время трансляции. Текст исходного модуля печатается полностью, если действует опция SOURCE. Операторы, содержащие ошибки, появляются в этой части листинга даже при наличии опции NOSOURCE. Часть 2 представляет собой план распределения памяти для объектов исходного модуля. В таблице указывается шестнадцатеричный адрес объекта, отсчитываемый от начала объектного модуля. Адреса элементов общего блока указываются относительно его начала. Часть 3 представляет собой текст объектного модуля в ассемблерной форме. Он содержит номер оператора исходного модуля Фортрана ( STA NUM), метку этого оператора ( LABEL), а также адрес ( LOCATION), операцию ( ОР) и операнды ( OPERAND) соответствующих предложений языка Ассемблера. В графе IDENTIFIER указываются идентификаторы, используемые в исходном модуле. Часть 4 включает список действующих при трансляции опций ( OPTIONS IN EFFECT) и данные ( STATISTICS) о длине модуля и ошибках в нем. Если в ходе трансляции ошибок не обнаружено, то печатается текст NO DIAGNOSTICS GENERATED. На рис. 5.1 показана структура листинга транслятора для одного исходного модуля МАШ, не имеющего ошибок. [1]
Листинг транслятора разбивается на страницы. Каждая страница листинга начинается с заголовка, содержащего идентификацию транслятора паскаль-360, дату и время трансляции, помер страницы. Основу листинга составляет текст исходной паскаль-программы. В начале очередной строки дополнительно печатаются два целых числа, весьма полезных для локализации динамических ошибок. Первое из этих чисел - адрес ( относительно начала тела блока программы, процедуры или функции) первой команды, порожденной транслятором в ходе трансляции этой строки. [2]
Приведем примеры листингов транслятора для случая, когда в исходной программе имеются ошибки и когда программа не содержит синтаксических ошибок. [3]
Часть 4 всегда присутствует в листинге транслятора. [4]
Другая информация, которая также появляется в листинге транслятора в этом случае, это количество строк исходной программы, в которых обнаружены ошибки, и сообщения о неописанных типах, файлах и метках. [5]
Неверное использование псевдокоманды USING может вызвать ошибки, которые сообщаются в листинге транслятора. Рассмотрим фрагмент листинга с сообщениями об ошибках. [6]
Если одновременно действуют опции SOURCE, NOLIST и NOSTMT, то в листинге транслятора после части 7 появляется таблица смещений. Эта таблица указывает соответствие номера каждого оператора исходного модуля и относительного адреса ( смещения) начала этого оператора в объектном модуле. [7]
Листинг транслятора для каждого фортран-модуля содержит текст исходного модуля, план распределения памяти и сообщения о найденных ошибках. [8]
При отладке чаще всего используются опции SOURCE и TEST. Первая из них позволяет включить в листинг транслятора текст программы, необходимый для поиска и анализа ошибок как на этапе трансляции, так и на этапе выполнения. [9]
При компоновке макрокоманды DI DB вывод потока заданий производится лишь тогда, когда все параметры макрокоманды были правильными. Если это не так, то в листинге транслятора печатается сообщение об ошибке. Выводимый на SYSPCH поток заданий не может быть обработан сразу же, так как записи на магнитной ленте содержат управляющие символы. Выделение управляющих символов производится программой ТРТР. [10]
Список диагностических сообщений содержит информацию о всех синтаксических ошибках ( в том числе и о предупреждениях), обнаруженных в программе. Сообщения с номерами 0001 - 0015 и 60001 - 60007 могут появляться в других местах листинга транслятора. Диагностические сообщения печатаются всегда, когда есть ошибки. [11]
ЕС ЭВМ, которая получается в результате трансляции исходной паскаль-программы и называется рабочей ( объектной) программой. Каждая из них имеет свой листинг. Таким образом, мы будем говорить о листинге транслятора - документе, который печатается транслятором, и листинге рабочей программы пользователя - студента. [12]
Опечатки в программе неизбежны. Сверку написанного вами на бланках текста производят либо с текстом, надпечатанным на картах, либо с листингом транслятора. [13]
На шаге 1 задания выполняется трансляция. Исходными данными для транслятора является текст программы на языке программирования. При выполнении этого шага транслятор загружается в ОП, после чего начинается его работа. Объектная программа размещается на магнитных дисках. Кроме объектной программы транслятор формирует листинг транслятора. [14]
Листинг транслятора ( рис. 5.1) для каждого исходного модуля состоит из четырех частей. Часть 1 содержит текст исходного модуля с порядковыми номерами, присвоенными операторам во время трансляции. Текст исходного модуля печатается полностью, если действует опция SOURCE. Операторы, содержащие ошибки, появляются в этой части листинга даже при наличии опции NOSOURCE. Часть 2 представляет собой план распределения памяти для объектов исходного модуля. В таблице указывается шестнадцатеричный адрес объекта, отсчитываемый от начала объектного модуля. Адреса элементов общего блока указываются относительно его начала. Часть 3 представляет собой текст объектного модуля в ассемблерной форме. Он содержит номер оператора исходного модуля Фортрана ( STA NUM), метку этого оператора ( LABEL), а также адрес ( LOCATION), операцию ( ОР) и операнды ( OPERAND) соответствующих предложений языка Ассемблера. В графе IDENTIFIER указываются идентификаторы, используемые в исходном модуле. Часть 4 включает список действующих при трансляции опций ( OPTIONS IN EFFECT) и данные ( STATISTICS) о длине модуля и ошибках в нем. Если в ходе трансляции ошибок не обнаружено, то печатается текст NO DIAGNOSTICS GENERATED. На рис. 5.1 показана структура листинга транслятора для одного исходного модуля МАШ, не имеющего ошибок. [15]