Jump to content

Оптимальное программирование

В истории вычислений оптимальное программирование или оптимальное кодирование — это практика расположения инструкций компьютерной программы в памяти таким образом, чтобы минимизировать время, которое машина тратит на ожидание инструкций. Он представляет исторический интерес, главным образом, из-за конструкции многих первых цифровых компьютеров.

Большинство ранних компьютеров использовали ту или иную форму последовательной памяти, в первую очередь память с линией задержки или магнитные барабаны . В отличие от оперативной памяти современных компьютеров, слова в последовательной памяти доступны по одному; время, необходимое для доступа к определенному слову, зависит от «расстояния» между ним и читаемым в данный момент словом. Если бы данная линия задержки содержала n слов, среднее время чтения слова было бы n /2 раз слова. Без оптимального кодирования такая машина проводила бы большую часть времени в ожидании инструкций и данных. [1]

Чтобы обойти эту проблему, многие машины, особенно Алана Тьюринга и ACE его потомки, включали в свой формат инструкций поле, определяющее адрес следующей команды, которая должна быть выполнена. Программист, использующий оптимальное кодирование, будет определять время, необходимое для выполнения текущей инструкции, вычислять, как далеко продвинется система памяти за это время, а затем помещать следующую команду программы в это место. Таким образом, когда текущая инструкция завершится и компьютер начнет искать следующую, как указано в инструкции, эта ячейка памяти только что прибудет и ее можно будет немедленно прочитать. Например, если программист только что написал код ADD инструкция по адресу 400, а ADD Для выполнения инструкции требовалось 4 слова, программист устанавливал в поле «следующий адрес» инструкции значение 404 и помещал туда следующую инструкцию.

В Соединенных Штатах оптимальное кодирование чаще всего использовалось на IBM 650. [2] и Бендикс G-15 . Обе машины имели оптимизирующие ассемблеры (SOAP для IBM, POGO для Bendix), которые могли автоматизировать эту задачу.

См. также

[ редактировать ]
  • Мел Кэй , автор одной особенно умной части оптимального программирования, вошедшей в компьютерную науку, описан в « Истории Мела» .
  1. ^ Руководство IBM по SOAP .
  2. ^ Кугель, Херб (22 октября 2001 г.). «ИБМ 650» . Доктор Добб.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 241e141d3c425025a3d4c36427a63c3e__1659791700
URL1:https://arc.ask3.ru/arc/aa/24/3e/241e141d3c425025a3d4c36427a63c3e.html
Заголовок, (Title) документа по адресу, URL1:
Optimum programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)