Cтраница 1
Скомпилированная программа сразу готова к работе: в окне Output будут выводиться все сообщения и запросы программы. [1]
Скомпилированные программы обработки данной базы также должны быть перекомпилированы. [2]
В результате скомпилированная программа в готовом к выполнению виде будет помещена в файл с именем a. В ИНМОС скомпилированная программа всегда называется a. [3]
Схема процесса трансляции. ( Библиотека и рабочие области могут располагаться на одних и тех же устройствах. [4] |
При этом скомпилированная программа перед выполнением должна быть считана с внешнего устройства в основную память. [5]
В некоторых операционных системах скомпилированная программа оказывается привязанной к определенному устройству. Например, выходной файл может записываться только на дисплее с ЭЛТ, а входной файл может читаться только с магнитного диска. Некоторые другие операционные системы генерируют программы, независимые от устройств, и в некоторых случаях даже используют каталог онлайновых файлов. Без вмешательства программиста или оператора они обеспечивают автоматическую передачу файлов с магнитного барабана на диск или ленту, если файл не является активным и занимаемая им область памяти необходима для текущей выполняемой программы. [6]
В некоторых операционных системах скомпилированная программа оказывается привязанной к определенному устройству. Например, выходной файл может записываться только на дисплее с ЭЛТ, а входной файл может читаться только с магнитного диска. Некоторые другие операционные системы генерируют программы, независимые от устройств, и в некоторых случаях даже используют каталог онлайновых файлов. Без вмешательства программиста пли оператора они обеспечивают автоматическую передачу файлов с магнитного барабана на диск или лепту, если файл не является активным и занимаемая им область памяти необходима для текущей выполняемой программы. [7]
После завершения компиляции начинается выполнение скомпилированной программы. Обычно выполнение начинается с первой инструкции. Чтобы начать с произвольной помеченной инструкции, соответствующую метку нужно указать в инструкции окончания. Метка первой выполняемой инструкции располагается на месте субъекта. [8]
Мы уже упоминали о том, что независимо скомпилированные программы могут быть собраны в единый модуль путем разрешения внешних ссылок. Однако в Multics связь между процедурами может устанавливаться динамически в процессе выполнения, когда одна из них обращается к другой. При вызове какой-либо процедуры выполняющимся процессом возможна активизация поискового механизма файловой системы. Если в результате просмотра справочной структуры указанная процедура будет обнаружена и обратившаяся к ней программа имеет необходимые права доступа, то найденная процедура передается в распоряжение этой программы. [9]
Хранимая процедура ( stored procedure) - это скомпилированная программа произвольной длины на языке SQL, которая хранится в базе данных вместе с другими объектами. Процедуры выбора используются в операторе SELECT вместо таблицы, и, следовательно, должны возвращать наборы данных. [10]
Такая схема, очевидно, соперничала бы с традиционной скомпилированной программой, которая выбирает значение L ( 2), используя индекс 2 в качестве величины сдвига от базового адреса списка L в памяти машины. [11]
Эта проблема решается достаточно просто, если на ПЭВМ устанавливается уже скомпилированная программа. [12]
К ним относятся компиляторы и редакторы связей, обеспечивающие сборку независимо скомпилированных программ в единый загрузочный модуль. Все механизмы предварительной обработки заданий функционируют как самостоятельные программы и практически не зависят от операционной системы. По этой причине многие разработчики, полагающие, что программы операционной системы обязательно должны находиться в специфических отношениях, отличающихся от их отношений с программами пользователей, не рассматривают такие механизмы как составные части операционной системы. [13]
Реализация ПЛ / 1 требует весьма значительной программной поддержки во время выполнения скомпилированных программ, но основное внимание все же уделяется компилятору. Конструкция языка такова, что в большинстве случаев программа содержит достаточное количество описательной информации ( заданной явно или по умолчанию), чтобы компилятор в принципе мог выдать сравнительно эффективный выполняемый код, но большое разнообразие программных структур и средств, используемых по желанию, а также сложность правил, регулирующих описания по умолчанию, делает задачу действительного получения эффективного кода из доступной информации чрезвычайно трудной. Конструкции большинства языков либо увеличивают гибкость за счет потери эффективности выполнения ( например, Лисп и Снобол 4), либо добиваются большей эффективности выполнения за счет гибкости ( например, Фортран и Кобол); в ПЛ / 1 делается попытка достичь и того, и другого, расплатой за это является сложность языка и процесса компиляции. [14]
С появлением первых операционных систем возникло понятие статической настройки, обеспечившей возможность физического размещения скомпилированной программы в любом месте памяти. Конечно, при этом предполагалось, что компилятор создает программу, обладающую свойством переместимости, а кроме того, что в системе имеется настраивающий загрузчик. Этап обработки программы настраивающим загрузчиком долгое время назывался просто этапом загрузки, причем разработка загрузчиков сыграла значительную роль в процессе эволюции операционных систем. [15]