Внутри шаблона программы
Внутри шаблона программы
Чтобы выяснить, что там происходит, возьмем в качестве примера шаблон программы ОРМ, хотя он и не поддерживается на RISC-системах. Я выбрал ОРМ по двум причинам. Во-первых, это дает возможность рассмотреть еще несколько интересных концепций, лежащих в основе оригинального набора команд MI. Во-вторых, некоторые детали шаблона программы ILE не опубликованы. И поэтому прежде чем заняться шаблоном программы ОРМ, рассмотрим те изменения, которые были внесены в программную модель ILE.
При создании компиляторов для программной модели ILE, в MI были добавлены новые команды. Некоторые из них имеют структуру близкую к W-коду, используемому компиляторами ILE, однако не совпадают с его командами в точности. Права на W-код принадлежат лаборатории IBM в Торонто (Toronto), Канада, которая пока не желает лицензировать интерфейс W-кода кому-либо за пределами IBM, опасаясь, что другие смогут разрабатывать и продавать компиляторы для AS/400. Мы решили определить команды! MI, которые похожи, но не в точности совпадают с W-кодом, чтобы не связываться с Торонто, если там когда-либо будет принято решение открыть этот интерфейс другим фирмам.
Наилучший целевой компьютер для компиляторов ILE — стековая машина, поэтому MI был расширен для поддержки стеков. Стек — набор данных, хранящихся последовательно. Первый помещенный в стек элемент называется его дном, последний — вершиной. Для работы со стеком используются команды без явного указания операндов, которые определяются путем извлечения из стека двух верхних элементов. В противоположность этому, команды ОРМ имеют два операнда, заданных непосредственно в команде. Для стековой машины операция задается после операндов. Такая форма записи называется постфиксной или обратной польской в честь математика Лукашевича (J. Lukasiewicz), исследовавшего ее свойства[ 37 ].
Интересно, что архитектура, разработанная в 1972 году, имела аналогичную поддержку стека. В то время многие полагали, что блочно-структурированные языки, такие как PL/1, станут очень популярными. Но они так и не вытеснили RPG и Cobol, так что стек был временно отвергнут. Теперь, с появлением таких языков как С, мы снова вернулись к нему.
Рисунок 4.7 Команды и ODT
Шаблон программы состоит из нескольких частей. Шаблон программы ОРМ содержит заголовок, последовательность команд MI, пользовательские данные и структуру под названием таблица определения объектов ODT (object definition table). Команды и ODT представлены на рисунке 4.7. Последовательность команд на рисунке содержит пример команды MI. Использована классическая команда OPM с тремя операндами —арифметическое сложение. Она состоит из кода операции, за которым следуют три значения, используемые для поиска трех операндов. Каждое из них является индексом в ODT. Показанная на рисунке команда запрашивает сложение операнда 6 с операндом 2 и помещение суммы в операнд 3.
ODT состоит из двух компонентов. Первая — ODV (ODT Direction Vector) — содержит по одному элементу для каждого операнда программы. Все элементы имеют одинаковую длину, так что значение из последовательности команд может использоваться как индекс в ODV. Элементы ODV описывают операнды. В нашем примере, операнды 6 и 3 — это двоичные числа длиной 2 байта, а операнд 2 — константа. Константы и другие типы операндов могут иметь переменную длину, что задает необходимость второго компонента ODT. OES (ODT Entry String) содержит операнды переменной длины, не умещающиеся в ODV. Содержимое поля ODV указывает на начало цепочки в OES. В нашем примере операнд 2 представляет собой константу 1253.
Пример иллюстрирует несколько характеристик команд MI модели ОРМ. Во-первых — это команда арифметического сложения. Это не команда двоичного или десятичного сложения, или сложения с плавающей запятой; она универсальна. Формат операндов команды определяется в ODT. В нашем примере используются двоичные целые операнды, но они могли бы иметь любой числовой формат. За генерацию необходимых преобразований отвечает транслятор.
Во-вторых, из примера видно, что ОРМ MI — неисполняемый интерфейс. Обратите внимание, что ни с операндом 3, ни с операндом 6 не связаны значения. Элемент ODV эквивалентен объявлению переменной. Память для переменной не выделена, так что транслятор обязан завершить компиляцию и назначить переменным регистры или области памяти.
И, наконец, в примере показана обычная вычислительная команда. Команда, работающая с объектом, имела бы аналогичный формат, но в ODT было бы указано, как найти объект (детали адресации объектов будут рассмотрены в главе 5).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
5.4. Ссылки внутри фреймов
5.4. Ссылки внутри фреймов В большинстве случаев при переходе по ссылке в окне браузера текущий документ заменяется новым. При использовании фреймов схема загрузки документов отличается от стандартной. Главное отличие – возможность загружать документ в выбранный фрейм
5.7. Управление пространством внутри фрейма
5.7. Управление пространством внутри фрейма По умолчанию браузер отображает фреймы с полосой чистого пространства (полями) между содержимым и границей фрейма, равной 10 пикселов. Управлять этим пространством фрейма можно с помощью атрибутов marginheight и marginwidth. Атрибут marginwidth
4.5. Произвольный доступ: перемещения внутри файла
4.5. Произвольный доступ: перемещения внутри файла До сих пор мы обсуждали последовательный ввод/вывод, при котором данные читаются или записываются с начала файла и продолжаются до его конца. Часто это все, что требуется программе. Однако, возможно осуществление
Внутри системного объекта
Внутри системного объекта Хотя в MI нет концепции памяти, все процессоры AS/400 используют физическую память, включая основную память и диск. Системные объекты, расположенные ниже MI, реализованы как строго определенные структуры, хранящиеся в этой памяти. За создание и
Внутри указателя
Внутри указателя Указатель используется в AS/400 для доступа к объектам. В этом разделе мы сосредоточимся исключительно на формате разрешенного указателя. У разрешенного указателя две функции: он описывает объект и полномочия пользователя на этот объект; а также задает
Внутри процесса ILE
Внутри процесса ILE В этом разделе мы заглянем внутрь процесса ILE. Структура процесса ILE сложна, и, подобно многим другим затронутым нами темам, ее описание насыщено таким количеством имен, сокращений и терминов, что может загнать в угол любого специалиста по компьютерам. И
Глава 16. Внутри социальной сети
Глава 16. Внутри социальной сети Таргетированная рекламаПрежде чем начать разговор об этом способе продвижения, сразу оговорюсь: я не буду заниматься банальным пересказом справочника по рекламе, выложенного в ВКонтакте. Как создавать объявление, какие кнопки нажимать и
Пример 7-3. Арифметические выражения внутри (( ))
Пример 7-3. Арифметические выражения внутри (( )) #!/bin/bash# Проверка арифметических выражений.# Инструкция (( ... )) вычисляет арифметические выражения.# Код возврата противоположен коду возврата инструкции [ ... ] !(( 0 ))echo "Код возврата "(( 0 ))": $?." # 1(( 1 ))echo "Код возврата "(( 1 ))": $?."
Перья и кисти внутри классов
Перья и кисти внутри классов Рисование перьями и раскрашивание кистямиПеревод А. И. ЛегаловаАнглоязычный оригинал находится на сервере компании Reliable SoftwareПодобно живописцу, Вы нуждаетесь в перьях и кистях, чтобы создать шедевр на вашем холсте. Когда Вы вызываете метод
13-Я КОМНАТА: Жизнь внутри 2
13-Я КОМНАТА: Жизнь внутри 2 Автор: Владимир ГуриевНашему блогу inside computerra ru вчера исполнился месяц, и, наверное, уже можно попытаться подвести какие-то итоги. Независимо от того, что произойдет с этим маленьким сайтом дальше, опыт получился интересный – по крайней мере, для
Что находится внутри?
Что находится внутри? Пока нетбук находится на гарантии, разбирать его не стоит. Лучше познакомимся с его внутренним устройством на картинках. Процессор обрабатывает информацию — это «мозг» компьютера.По производительности процессоры, которые устанавливают в нетбуки,
Приложение Информация. В мире и внутри человека
Приложение Информация. В мире и внутри человека Эта книга описывает внешний мир, окружающий человека. В ней рассмотрены значение и роль информации в этом мире, а также то, как человек использует информационные технологии в своих интересах. Но человек сам постоянно
А что у него внутри, или Устройство компьютера
А что у него внутри, или Устройство компьютера Операционная система Что такое «операционная система»? Название настораживает. Не успев начать изучение компьютера, уже пора заботиться о здоровье? Да еще таким способом?Спокойно, врачи нам не нужны.Для того чтобы в нашем