А   Б  В  Г  Д  Е  Є  Ж  З  І  Ї  Й  К  Л  М  Н  О  П  Р  С  Т  У  Ф  Х  Ц  Ч  Ш  Щ  Ю  Я 


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

Текст вихідного модуля друкується разом з порядковими номерами, присвоєними операторам під час трансляції. Цей текст може містити повідомлення про помилки в операторі модуля безпосередньо за цим оператором. Під тими символами оператора, при аналізі яких транслятор не може витлумачити оператор як правильний, друкуються знаки & В наступних рядках друкуються повідомлення про помилки в цьому операторі разом з їх порядковими номерами. Помилки, які не можна віднести до якогось конкретного оператора, перераховуються після тексту вихідного модуля.

Текст будь-якого вихідного модуля, що входить в програму на мові асемблера, рекомендується розбивати на кілька частин: вступну, описову і основну. У вступній частині вказується призначення вихідного модуля і інша додаткова інформація, наприклад прізвище програміста і дата створення програми.

Зустрівши в тексті вихідного модуля системну макрокоманду, Асемблер використовує для побудови макророзширення бібліотечне макровизначеннями. Не будемо детально описувати всі системні макроси операційної системи ДОС. Слід зазначити, що набори системних макрокоманд в операційних системах ДОС і ОС відрізняються один від одного як складом, так і синтаксисом (мнемониками і правилами запису операндів) і виконуваними діями. З цієї причини вихідний модуль, складений на мові Асемблера і містить системні макроси ДОС, не може бути без переробки трансльований і виконаний засобами ОС, і навпаки. Вихідні модулі, складені на ФОРТРАКе, від цього недоліку вільні.

Налагоджувальний транслятор перетворює текст вихідного модуля в об'єктний і (або) інтерпретує, який може бути виконаний негайно або в наступних кроках завдання.

Об'єктні модулі містять тексти вихідних модулів в машинному коді, доповнені службовою інформацією у вигляді словника зовнішніх символів і словника переміщень, і не є готовими до виконання програмами. Для отримання готових до виконання програм об'єктні модулі повинні пройти етап редагування, реалізований системними обробними програмами редактора зв'язків.

У частині 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 - префікс транслятора, а ххх - тризначний номер повідомлення в передньо можливих діагностичних повідомлень транслятора.

Наступним етапом обробки є трансляція. Після трансляції вихідний модуль записується на мові машинних команд ЕОМ. Об'єктний модуль не може бути безпосередньо виконаний на ЕОМ. У ньому відсутні необхідні стандартні і бібліотечні програми. Для остаточного формування програмного модуля слід пройти етап компонування програми, на якому забезпечується виклик необхідних стандартних і бібліотечних програм, об'єднання декількох модулів, завантаження модуля в основну пам'ять ЕОМ. Після компоновки формується файл образу завдання, готовий до виконання на машині. Якщо в процесі трансляції, компонування або виконання будуть виявлені помилки, то операційною системою видаються діагностичні повідомлення про тип помилки. Для виправлення помилок необхідно у всіх випадках повертатися на етап редагування і коригувати текст вихідного модуля.