Лекция № 4 Машины ЯВУ
Привязка программ к машинам
Привязка - процесс дополнения и модификации программы посредством информации, позволяющей выполнять программу на выбранной машине.
Возможны два аспекта:
1) временной (привязку в процессе написания оператора, компилирования, установления связей с подпрограммами, загрузки программы, вызова подпрограммы, выполнения предыдущего оператора программы, выполнения данного оператора.
2) информационный.
Привязка в процессе написания оператора предполагает принятие решений, которые в дальнейшем не могут быть изменены. Если в процессе написания программы, в текст включена инфа, зависящая от специфических характеристик машины, то происходит привязка программы к машине.
Привязка программы к машине в большей степени осуществляется на этапе компилирования.
Идентификаторы переменных преобразуются в адреса.
Операторы программы — в последовательности машинных команд.
Рис. 4.1, Ветвь 1 - традиционный подход. Ветвь 2: архитектура, ориентированная на язык высокого уровня.
Ветви 3 и 4 - машины языков высокого уровня. Машины с архитектурой, представленной ветвью 3, достигают такого уровня, когда язык высокого уровня можно рассматривать как язык ассемблера. Ветвь 3 представляет две разновидности архитектуры. Ветвь 4 - ЯВУ является также и машинным языком; машина интерпретирует непосредственно программу наязыке высокого уровня.
Архитектура, ориентированная на ЯВУ
АЛГОЛ В5500/6500/6700/7600 фирмы Burroughs и MU5. L – машина на ПЛ/1. В3500 – КОБОЛ, различные ПАСКАЛЬ - машины. Машины, ориентированные на общие семантические характеристики группы языков. Rice Research Computer, BLM и др. SWARD - Ада, ПЛ/1, Фортран, Кобол и т. п. iAPX 432 фирмы Intel. В1700 динамически переходит от одного набора команд к другому.
|
Архитектура машин ЯВУ типа А
ЯВУ как ассемблер (машинный язык в символической форме). Бо’льшая часть работ по привязке программы к машине до начала выполнения программы.
Это архитектура с высокой степенью ориентации на ЯВУ.
Системы реального времени для языка FLUID, ВС для языка Space Programming Language (являющегося производным от языка Jovial) и другие.
Архитектура машин ЯВУ типа Б
В машине типа А ассемблирование выполняется программно, а в машине Б—аппаратно или микропрограммно. Машина сначала ассемблирует исходную программу, а затем интерпретирует. Тип Б - APL-машины, ФОРТРАН-машина, Эйлер-машина, БЕЙСИК-машина, АЛГОЛ-машина и система SYMBOL.
Машинам типа Б присущ тот же семантический разрыв.
Достоинством машин типа Б является бо’льшая скорость ассемблирования.
Недостаток машин типа Б – более высокая стоимость и меньшие возможности по расширению.
Цены аппаратной и программной реализации функций ВС
Микропрограммные средства обходятся более дорого в разработке и производстве всвязи с: 1) высокий уровень алгоритмизации ЯВУ требует меньший объем памяти; 2) микропрограммы хранят в более быстродействующей и более дорогостоящей среде.
Реализация функций программно всегда менее дорогостоящей. Обстоятельства за аппаратную реализацию:
1) изъятие функции у машины предполагать ее многократную реализацию программными средствами.
Функция, реализуемая программно, может оказаться многократно дублируемой в памяти машины.
|
Аппаратная реализация экономически оправданна при:
1) при условии производства большого количества экземпляров системы;
2) если требуется многократное генерирование адекватной программы;
3) при большое числе дубликатов программной реализации функции в памяти.
Использование машин ЯВУ типа Б экономически неоправданно.
Архитектура машин ЯВУ типа В
Примеры - APL-машина, АЛГОЛ-машина, БЕЙСИК-машина, ФОРТРАН-машина, Паскаль-машина, ЛИСП-машина, Jovial-машина, машина со структурой, подстраиваемой под любой язык и др.
Машина интерпретирует программно-реализованный интерпретатор Недостатки:
1. Выполнение всех функций возлагается на аппаратные средства.
2. Работа по привязке программы к машине осуществляется в процессе прогона программы динамически.
3. Манипуляции символическими именами переменной длины, инфиксная форма, сканирования программы в поиске точек перехода.
4. Более высокая стоимость и меньшая способностью к перестройке.
5. Отсутствие процедуры, осуществляющей анализ программы до ее выполнения. В машине данного типа ошибки не выявляются вплоть до этапа выполнения программы.
6. Не реализуются функции ввода-вывода, управление вычислительным процессом и управление памятью.
Некоторые функции системы лучше реализовать программными средствами. Наилучшим решением является преобразование исходной программы на этапе, предшествующем ее выполнению.