Алгоритм - трансляция - Большая Энциклопедия Нефти и Газа, статья, страница 3
Еще никто так, как русские, не глушил рыбу! (в Тихом океане - да космической станцией!) Законы Мерфи (еще...)

Алгоритм - трансляция

Cтраница 3


Чаще всего составители трансляторов стремятся транслировать операторы процедур независимо от их описаний. Это существенно упрощ ает алгоритм трансляции, хотя и ухудшает качество объектной программы, поскольку приходится использовать самые общие ( и самые неэкономичные) алгоритмы трансляции. Для получения достаточно эффективной объектной программы при независимой трансляции описаний процедур требуется, чтобы все формальные параметры были специфицированы. Независимая трансляция требует также проверки соответствия фактических и формальных параметров в ходе исполнения объектной программы.  [31]

Метод синтаксических подпрограмм ориентирован на описание синтаксиса конкретного входного языка. Отсюда вытекает основной недостаток этого метода, такой же, как и у прямых методов - сильная зависимость транслятора от конкретного входного-языка, поскольку набор синтаксических конструкций и семантика входного языка определяют как набор синтаксических подпрограмм, так и алгоритм трансляции, используемый в каждой подпрограмме. Заметим, что привязанность к конкретному языку имеет и определенное преимущество: транслятор можно сделать более эффективным.  [32]

Алгоритм анализа программ, написанных на входных языках, базируется на отношениях предшествования. В качестве параметров транслятора в него вводятся матрица отношений предшествования ( или функции предшествования), грамматические правила, описывающие данный язык, и набор подпрограмм. Независимость алгоритма трансляции от входного текста обеспечивается единой системой трансляции программ, которые могут быть написаны на разных входных языках.  [33]

Эти задачи трудно решить за один просмотр исходной программы, поскольку при трансляции каждой команды нужно знать значения ( адреса), сопоставленные именам и литералам, выступающим в качестве операндов, а для выявления всех имен и литералов и присваивания им значений ( адресов) требуется предварительно просмотреть всю исходную программу. Правда, в ходе одного просмотра можно присваивать значение каждому новому имени в момент его появления, но тогда придется временно задерживать присваивание адресов именам, которые еще не появлялись в поле названия, потому что значение имени зависит от положения машинного эквивалента именованного оператора в объектной программе. Это усложняет алгоритм трансляции. Поэтому чаще используют двухпросмотровые ассемблеры. В частности, ассемблеры ЕС ЭВМ - двухпросмотровые.  [34]

В принципе описываемый транслятор пригоден для перевода с нескольких входных языков, грамматики которых - грамматики предшествования, на несколько выходных языков. Транслятор, переводящий с М входных языков на N выходных, должен иметь М экземпляров таблиц порождающих правил и матриц предшествования и М X N наборов семантических подпрограмм. Однако за универсальность транслятора в классе грамматик предшествования приходится платить сравнительно невысокой эффективностью алгоритмов трансляции.  [35]

Разумеется, не во всех описаниях процедур-функций наличие побочного эффекта проявляется столь прозрачно, как в приведенных примерах. В общем случае значение выражения, содержащего указатель функции с побочным эффектом, можно правильно определить при знании алгоритмов трансляции.  [36]

Прямые методы трансляции ориентированы на конкретные входные языки. Это преимущественно эвристические методы, в которых на основе некоторой общей руководящей идеи для каждой конструкции входного языка подбирается индивидуальный алгоритм трансляции. Этапы синтаксического и семантического анализов здесь обычно четко не разделены. Алгоритмы трансляции, применяемые в прямых методах, как правило, существенно зависят от входного языка.  [37]

Полностью не зависимые от машины методы трансляции до сих пор найти не удалось. Однако использование в процессе трансляции машинно-независимого промежуточного языка позволило сделать значительную часть алгоритма трансляции с конкретного входного языка не зависимой от машины. В частности, в рассмотренном методе трансляции с Алгола-60 ( глава 4), основанном на стеке с приоритетами, алгоритм перевода на промежуточный язык ( в обратную польскую запись) не зависит от конкретной машины. С машиной связана лишь вторая часть алгоритма трансляции - генерирование машинных команд.  [38]

Идея создания общей для всех языков библиотеки так никогда и не была осуществлена. До сих пор каждый компилятор имеет свою личную библиотеку, включающую специфические подпрограммы. Особенности процессов компиляции и ассемблирования не позволяют эффективно использовать язык Ассемблера как промежуточную форму алгоритмов трансляции. Отметим, что полный UNCOL также никогда не был реализован.  [39]



Страницы:      1    2    3