Учебное пособие: Аппаратура, программное обеспечение и микропрограммы

При спулинге (вводе-выводе с буферизацией) посредником между работающей программой и низкоскоростным устройством, осуществляющим ввод-вывод данных для этой программы, становится высокоскоростное устройство, например дисковый накопитель. Вместо вывода строк данных непосредственно, скажем, на построчно печатающее устройство программа записывает их на диск. Благодаря этому текущая программа может быстрее завершиться, с тем чтобы другие программы могли быстрее начать работать. А записанные на диск строки данных можно, распечатать позже, когда освободится принтер. Для этой процедуры название «спулинг» весьма подходит, поскольку она напоминает намотку нитки на катушку, с тем чтобы ее можно было при необходимости размотать.

2.3.6 Процедурно-ориентированные и проблемно-ориентированные языки

Языки высокого уровня бывают либо процедурно-ориентированными, либо проблемно-ориентированными. Процедурно-ориентированные языки высокого уровня — это универсальные языки программирования, которые можно использовать для решения самых разнообразных задач. Проблемно-ориентированные языки предназначаются специально для решения задач конкретных типов. Такие языки, как Паскаль, Кобол, Фортран, Бейсик и ПЛ/1 обычно считаются процедурно-ориентированными, а такие языки, как GPSS (язык моделирования) и SPSS (язык для выполнения статистических вычислений),— проблемно-ориентированными. 1)

2.3.7 Быстрые компиляторы без оптимизации и оптимизирующие компиляторы

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

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

К-во Просмотров: 221
Бесплатно скачать Учебное пособие: Аппаратура, программное обеспечение и микропрограммы