Cтраница 2
Непрерывный контроль программ проводится в шести специально оборудованных кабинах технического контроля, закрепленных за каждой выходной программой. [16]
Процесс ввода исходной программы в память вычислительной машины, переработки ее с помощью компилятора и получение выходной программы называют компиляцией. [17]
Под генерирующей подпрограммой, как и раньше, будем понимать подпрограмму транслятора, возможно, пустую, генерирующую часть выходной программы, которая соответствует данной левой части грамматического правила. [18]
Эти программы, используя табличное представление синтаксиса и семантики данного входного языка L, перерабатывают входную программу на этом языке в выходную программу. [19]
Например, при трансляции оператора Y: - A [ I, / ] В 1, J ], если не производить оптимизацию выходной программы, вычисление индексных выражений / и / будет проведено дважды: один раз при определении элемента массива А, другой - при определении элемента массива В. Команды, вычисляющие эти выражения, также будут записаны в рабочую программу дважды. [20]
Транслятор ТРОГ-1 переводит операторы входного языка ОГРА-1 во внутреннюю структуру данных ОГРА-2, выполняя обычные для транслятора алгоритмического языка функции - распознавание синтаксических и некоторых семантических ошибок, генерацию выходной программы. При разработке транслятора учитывается ряд требований, определенных спецификой процессора устройства отображения и особенностями применения языка. [21]
После формирования и печати текста сообщения об ошибке подпрограмма обработки ошибки обычно удаляет ошибочную конструкцию ( оператор, описание), а затем процесс синтаксического анализа продолжается без формирования выходной программы. [22]
Блок переводов предназначен для перевода на русский язык с иностранных языков и языков народов СССР и наоборот входных программ, приходящих по междугородным и международным линиям, для чего предусмотрено 6 кабин переводчиков, и выходных программ ОТЦ, для чего имеется. [23]
Таким образом, если некоторый оператор выполняется тысячу раз, процесс преобразования ( трансляции) оператора при его интерпретации должен быть повторен также тысячу раз, однако при этом не требуется большой емкости памяти для хранения выходной программы. Транслятор же преобразует оператор один раз и записывает в память; далее при выполнении оператора будет просто тысячекратно повторена последовательность машинных команд, при этом общий выигрыш во времени может быть значительным. [24]
В тех языках программирования или автокодах, в которых описания переменных или процедур ( подпрограмм) производятся после обращения к этим переменным или процедурам, транслятор при одном проходе не может перевести соответствующую часть входного текста в выходную программу, так как тип переменных еще не определен. [25]
Вообще говоря, оптимизация рабочей программы УВМ охватывает большой круг вопросов, значительная часть которых требует знания статистических характеристик отдельных частей программы и учета характеристик других программ, с которыми может работать транслируемая программа. При оптимизации выходной программы эти вопросы обычно транслятором не решаются. Возможные методы их решения рассматриваются в гл. [26]
В процессе этого перевода создаются таблицы переменных, номеров операторов, констант и выражений. Эти таблицы используются при генерировании выходной программы и в процессе оптимизации. Печатаются сообщения об ошибках. [27]
В начале данной главы было сказано, что задача компилятора - создать эквивалент исходной программы на машинном языке. Однако в наших примерах генерации кодов выходная программа была представлена на языке ассемблера. Литералы и символические адреса нагляднее для читателя, однако компилятор должен создавать программы на машинном языке. [28]
Скорость трансляции не является в данном случае основным критерием качества, так как в процессе трансляции многовариантные ситуации почти не встречаются. Аналогичный вывод можно сделать и в отношении быстродействия выходной программы, которой в системе ТРОГ является программа управления устройством отображения. [29]
Программы сравнимы и по числу предложений исходного языка, и по размерам и времени исполнения выходной программы. Отклонения бывают и в одну, и в другую сторону. Различия больше касаются способностей программиста, а не используемой им технологии. Вероятно, структурный подход помогает не создавать очень неэффективные программы. Если после структурирования увеличивается объем и время работы программ, то потеря эффективности обычно окупается дешевизной последующего сопровождения. Это особенно верно тогда, когда стоимость исполнения программы сравнима с затратами на содержание программистов, занимающихся экономией времени исполнения. [30]