Jump to content

Символическая оптимальная программа сборки

Форма кодирования SOAP II, 1957 г.

Программа символической оптимальной сборки (SOAP) — это ассемблер для IBM 650 машины обработки данных с магнитным барабаном , раннего компьютера , впервые использованного в 1954 году. Она была разработана Стэном Поли в Исследовательском центре IBM Томаса Дж. Уотсона . [1] SOAP называется «оптимальным» (или «оптимальным»), поскольку он пытается сохранить сгенерированные инструкции на барабане хранения , чтобы минимизировать время доступа от одной инструкции к другой. SOAP — это многопроходный ассемблер, то есть он обрабатывает исходную программу более одного раза, чтобы сгенерировать объектную программу .

На смену первой версии SOAP пришла SOAP II в 1957 году. [2] который поддерживал дополнительные аппаратные функции, такие как индексные регистры и память на магнитных сердечниках , затем SOAP IIA в 1958 году, [3] SOAP 2L, лента SOAP 2L, SOAP 4000 и SOAP 42 в 1961 году. [4] SOAP использовался в качестве серверной части компилятора FOR TRANSIT в 1957 году. [1]

Дональд Кнут независимо произвел версии под названием SOAP III в 1958 году. [5] и СУПЕРМЫЛО в 1959 году. [6] в Технологическом институте Кейса, который сейчас является частью Университета Кейс Вестерн Резерв в Кливленде, штат Огайо . США Национальное бюро стандартов под руководством Герберта Хоу также написало версию SOAP под названием ISOPAR, которая, как утверждается, значительно улучшает оптимизацию. [7]

Оптимизация

[ редактировать ]

IBM 650 использует магнитный барабан в качестве основного хранилища. Барабан вмещает до 4000 слов и вращается со скоростью 12 500 оборотов в минуту (об/мин), 4,8 мс на оборот, или среднее время доступа 2,4 мс. «Если вы разместите инструкции на барабане последовательно, вам придется дождаться полного вращения барабана, прежде чем ЦП сможет получить следующую инструкцию. Поскольку многие инструкции на 650 могут выполняться примерно за 3 миллисекунды, вы должны попытаться оптимизировать свой код, размещая инструкции на барабане таким образом, чтобы барабану не требовался полный оборот для доступа к следующей инструкции». [8] Каждая инструкция содержит адрес следующей инструкции для выполнения; вместо последовательного массива инструкций память представляет собой связанный список. SOAP оптимизируется путем размещения инструкций, которые должны выполняться последовательно, в местах вокруг барабана, так что следующая инструкция становится доступной как можно скорее после завершения текущей инструкции. Утверждалось, что эта оптимизация позволила собранным программам «работать в шесть или семь раз быстрее». [1]

SOAP-функции

[ редактировать ]

Псевдооперации

[ редактировать ]

SOAP II поддерживает следующие псевдооперации (директивы сборки): [2]

SOAP II Псевдооперации
НА Имя Описание
ХЭД Заголовок Отдельные программы, возможно, написанные отдельно, которые собираются вместе. В этом разделе можно указать символ, который будет добавлен к именам символов, чтобы избежать конфликтов имен.
РЭЛ Программа передвижной библиотеки Определяет начало перемещаемой библиотечной программы, которая собирается перед основной программой. Он определяет величину, на которую должны быть перемещены собранные адреса.
РБР Резервирование перемещаемого блока Резервирует ряд местоположений барабана как «стираемые блоки в рамках процедуры», чтобы избежать использования нескольких карточек для указания области данных.
ЗАПРОС Перемещаемая эквивалентность Приравнивает символ к адресу перемещаемой подпрограммы и дополнительно указывает величину перемещения.
БЛР Блокировать резервирование Помечает диапазон адресов барабанов как недоступный для назначения по протоколу SOAP.
БЛА Блокировать доступность Помечает диапазон адресов барабанов как доступный для назначения.
РЕГ Региональная спецификация Определяет диапазон адресов барабанов как «регион», идентифицируемый односимвольным идентификатором региона . Местоположение внутри региона указывается как <идентификатор региона>nnnn, где nnnn — число от 1 до количества местоположений, указанного для региона.
Альф Алфавитные данные Указывает до пяти буквенных символов, которые будут собраны в указанном месте.
ПАТ Стол для сборки пуансона Приказывает SOAP пробить колоду из пятидесяти карточек типа Y со списком использованных и доступных мест расположения барабанов на любом этапе сборки. Эту таблицу можно просмотреть вручную и передать обратно в SOAP при последующей сборке, чтобы восстановить «состояние доступности, которое существовало в какой-то момент предыдущей сборки».
ПБ Начало программы Указывает на начало новой программы, которая будет собрана отдельно от предыдущих программ в той же колоде карт.
ЭКВ Эквивалентность Приравнивает символ к абсолютному, региональному или символическому значению.
СИН Синоним Приравнивает символ к абсолютному адресу барабана. Адрес помечен как недоступный для присвоения

Комментарии

[ редактировать ]

Каждая исходная карточка может содержать до десяти символов комментариев в столбцах 63–72. Для более длинных комментариев в карточке комментариев можно ввести до тридцати символов ( тип 1 , «1» в столбце 41) в столбцах 43–72.

  1. ^ Jump up to: а б с Лоренцо, Марк Джонс (2019). История языка программирования Фортран . п. 162. ИСБН  9781082395949 . Проверено 28 сентября 2020 г.
  2. ^ Jump up to: а б Корпорация IBM (1957). SOAP II для системы обработки данных IBM 650 (PDF) . Проверено 27 сентября 2020 г.
  3. ^ Корпорация IBM (1958). Бюллетень системы обработки данных IBM 650 . Проверено 27 сентября 2020 г. }
  4. ^ Корпорация IBM (1961). SOAP 2L, лента SOAP 2L, SOAP 4000 и SOAP 42 (PDF) . Проверено 27 сентября 2020 г.
  5. ^ «МЫЛО III» . Интернет-историческая энциклопедия языков программирования . Проверено 27 сентября 2020 г.
  6. ^ Кнут, Дональд Э. (1959). Система сборки SUPERSOAP для Augmented 650 (PDF) . Проверено 27 сентября 2020 г.
  7. ^ Хау, Герберт. ISOPAR: новая и улучшенная программа символьной оптимизации сборки для IBM 650 (PDF) . Проверено 28 сентября 2020 г.
  8. ^ Кугель, Херб (22 октября 2001 г.). «ИБМ 650» . Доктор Добб . Проверено 28 сентября 2020 г.
[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 7fc12e900d0f2a8f7cb60b11d7b646bf__1713751440
URL1:https://arc.ask3.ru/arc/aa/7f/bf/7fc12e900d0f2a8f7cb60b11d7b646bf.html
Заголовок, (Title) документа по адресу, URL1:
Symbolic Optimal Assembly Program - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)