Cтраница 2
При переводе и исполнении программ возможно и такое сочетание компиляции с интерпретацией, когда основной является компиляция, однако скомпилированная программа содержит специальные коды, отличные от кодов машины, которые интерпретируются в ходе выполнения скомпилированной программы на машине. Возможна и другая комбинация, когда программа интерпретируется, однако получающиеся в результате части программы сохраняются и компилируются в общую программу что позволяет избежать необходимости в повторной интерпретации. [16]
Языковый процессор, который построчно анализирует исходную программу и одновременно выполняет предписанные действия, а не формирует на машинном языке скомпилированную программу, которая выполняется впоследствии. [17]
При переводе и исполнении программ возможно и такое сочетание компиляции с интерпретацией, когда основной является компиляция, однако скомпилированная программа содержит специальные коды, отличные от кодов машины, которые интерпретируются в ходе выполнения скомпилированной программы на машине. Возможна и другая комбинация, когда программа интерпретируется, однако получающиеся в результате части программы сохраняются и компилируются в общую программу что позволяет избежать необходимости в повторной интерпретации. [18]
Оформление программных единиц для выполнения в системе в виде заданий навело на мысль о том, что в рамках одного задания в принципе могло бы быть объединено несколько запросов на компиляцию, компиляцию и выполнение и просто выполнение уже скомпилированных программ. [19]
В результате скомпилированная программа в готовом к выполнению виде будет помещена в файл с именем a. В ИНМОС скомпилированная программа всегда называется a. [20]
Когда вы запустите скомпилированную программу Паскаля expert, она считает содержимое текстового файла rules и выведет на экран меню консультации. [21]
Сгенерированный вариант процедуры с последовательным доступом к данным требует почти таких же затрат времени ЭВМ, как и ее интерпретирующий вариант, но, затраты памяти для обоих вариантов могут различаться многократно. Например, отношение объема скомпилированной программы для процедуры суммирования векторов, не содержащих ненулевые элементы, к объему такой же, но интерпретирующей программы, пропорционально размерности этих векторов. [22]
Для сохранения программы на диске нужно нажать клавишу Y. Если в памяти хранились коды скомпилированной программы, то они будут утеряны. Для того чтобы скомпилированная программа записывалась на диск, необходимо изменить опцию Destination в пункте Compile основного меню. [23]
Язык сконструирован таким образом, чтобы сделать выполняемые формы достаточно эффективными: обязательны полные описания для всех элементов данных, память распределяется статически в начале выполнения и изменения в программе во время ее выполнения почти целиком ограничены модификацией значений элементов данных. Таким образом Кобол предоставляет компилятору информацию, необходимую для того, чтобы скомпилированные программы были более или менее эффективными, однако задача получения действительно оптимальной выполняемой формы затрудняется громоздкостью больших КО-БОЛ-программ. Обычно применяется многопроходной компилятор, состоящий из различных обрабатывающих сегментов, которые во время компиляции программы по очереди помещаются в память. Первые сегменты выполняют синтаксический анализ и строят таблицы для последующих сегментов, которые генерируют и оптимизируют результирующий код. [24]
Такой загрузчик позволял помещать в единую область памяти и совместно выполнять независимо скомпилированные программы, а также связывать программы пользователей с необходимыми библиотечными подпрограммами. [25]
Соответствующие управляющие карты могут воспользоваться этим значением, чтобы условно задержать исполнение последующих шагов задания. В частности, при отсутствии грубых ошибок становится возможным выполнение только что скомпилированной программы. [26]
В реализации Фортрана, как правило, вся память распределяется статически. Каждая программа компилируется отдельно от остальных, при этом компилятор создает блок памяти, содержащий скомпилированную программу, ее области данных, временные переменные, позиции для точки возврата, а также области системных данных. Программа-загрузчик выделяет пространство в памяти для этих скомпилированных блоков, а также для системных программ, требуемых во время выполнения. В процессе выполнения программы не происходит никакого управления памятью. [27]
В начале компиляции компилятор создает двоичные отображения встроенных функций, а затем компилирует библиотеку из файла input ( 2) без распечатки. В обычной ситуации input ( 2) содержит процедуру compactify Следовательно, эта процедура является частью каждой скомпилированной программы, но никогда не появляется в распечатке. При условии конца файла в input ( 2) компилятор переключается на файл input и начинает распечатку программы. [28]
Интерпретация программ JVM ( и любых других программ) происходит медленно. Альтернативный подход - сначала скомпилировать апплет или другую программу JVM для вашей собственной машины, а затем запустить скомпилированную программу. Такая стратегия требует наличия компилятора с JVM на машинный язык внутри браузера и возможности активизировать его, когда необходимо. Эти компиляторы называются JIT-компиляторами ( Just In Time - как раз вовремя), и они широко распространены. Однако эта система создает некоторую задержку между получением JVM-программы и ее выполнением, поскольку JVM-программа компилируется на машинный язык. [29]
При этом вызывается программа-загрузчик, которая непосредственно помещает пользовательскую программу в память. На этапе загрузки происходит выделение памяти, необходимой для выполнения данной программы, а также осуществляется ее привязка к конкретным физическим устройствам и присоединение к ней необходимых ранее скомпилированных программ. [30]