Опреанды и операторы

Проектирование трансляторов
Семестр: Отладка разработанного ПО и оформление протоко- В строке ...SiSj... символы Si и Sj входят в одну и ту В множество L(U) самых левых символов нетерминального Пусть между некоторыми двумя символами Si и Sj сущес- I i 1 Не предусмотрен выход при выполнении условия R > R , так как Потом повторяется п. 5 Если выполнение шага 4 пpиведет к тому, что значения всех Перевод инфиксной записи в польскую. Всякий раз, когда в Когда редуцируется основа XY..Z, тетрады для всех нетер- Опреанды и операторы Если сканируемый символ - унарный оператор, то он приме- А * В + С * D => *, A, B, T1 ┐ тетрады располагаются в Устраняет недостатки программы,вызванные небрежностью или Проверяется непртиворечивость типов получателя и ис- ДИСПЛЕЙ Выделение памяти под рамку в процессе трансляции ОРГАНИЗАЦИЯ ПАМЯТИ ВО ВРЕМЯ ТРАНСЛЯЦИИ Алгоритм Биледи Возможные параметры описания переменных и процедур
319724
знака
0
таблиц
0
изображений

1.1. Опреанды и операторы

Внутренние формы содержат операторы и операнды. В различных

видах представлений существенное отличие заключается в форме сое-

динения операторов и операндов.

Операторы: + , - , / , * , BR (branch) и т.п. Операнды : -

простые имена (переменных, процедур и т.д.);

- константы;

- временные переменные, генерируемые компилятором;

- переменные с индексами.

Каждый операнд (за исключением переменных с индексом) пред-

ставляется указателем на соответствующий элемент в таблице симво-

лов, констант или временных переменных.

В поле операнда предусматривается признак косвенной адреса-

ции, чтобы указать таким путем, что значение в таблице, на кото-

рое указывает операнд, является адресом расположения значения,

которое требуется операнду при исполнении команды.

Пременную с индексами А[i,j,...,k] можно обрабатывать сле-

дующим образом:

- сначала включить последовательность операций для вычисления

VARPART и запоминания ее во внешней ячейке Т;

- сам операнд представить двумя указателями: на элемент с име-

нем массива и на значение VARPART, т.е. А[i,j,...,k] можно

представить в виде А[T]. Такой операнд занимает две ячейки

во внутреннем представлении, но зато позволяет генерировать

более эффективную объективную программу. Простая переменная

┌───┬───┬─────────────────────────────────────┐

│ 1 │ I │ указатель на эл-т таблицы символов │ I - признак

└───┴───┴─────────────────────────────────────┘ косвенной

Константа адресации

┌───┬───┬─────────────────────────────────────┐

│ 2 │ │ указатель на эл-т таблицы констант │

└───┴───┴─────────────────────────────────────┘

Временная переменная

┌───┬───┬─────────────────────────────────────┐

│ 3 │ I │ указатель на эл-т табл. врем. перем.│

└───┴───┴─────────────────────────────────────┘

Перменная с индексами

┌───┬───┬─────────────────┬───┬───┬───────────────┐

│ 4 │ I │ ук-ль на эл-т │ х │ I │ ук-ль на эл-т │

│ │ │ с именем массива│ │ │ с индексом │

└───┴───┴─────────────────┴───┴───┴───────────────┘

┌─────────────────────────┘

│ описание индексов

х = 1 - указатель на табл. символов

2 - указатель на табл. констант

3 - указатель на табл. временных переменных

Форматы операндов

Польская запись

1.Польский логик Я.Лукашевич впервые применил запись арифмети-

ческих и логических выражений, которая без скобок указывает точ-

ный порядок выполнения операций. В ней операторы следуют непос-

редственно за операндами (постфиксная запись). Она определяется

следующими правилами:

1) операнды следуют в том же порядке, как они представлены в

префиксной записи;

2) операторы следуют в том же порядке, в каком они должны

вычисляться (слева направо);

3) опер-ры располаг-ся непосредственно за своими оп-дами.

Это можно представить следующими правилами: <операн-

д>::=<идентификатор>|<операнд><операнд><оператор>

<оператор>::= + | - | / | * | ... Для унарных оперций можно

ввести новый символ ( например @ для -) и еще одно правило

<операнд>::=<операнд>@ Пример A * ( B + C / D ) <=> ABCD / + *

A + ( -B + C * D ) <=> AB@CD * + +

(C таким же успехом можно применять префиксную запись).

Вычисление арифметических выражений

Данные правила определяют порядок обработки выражения с по-

мощью стека за один просмотр выражения слева направо, начиная с

самого левого символа входной цепочки:

1. Если сканируемый символ идентификатор, то его значение

заносим в стек и переходим к следующему символу (правило <оп-

реанд>::= идентификатор)

2. Если сканируемый символ - бинарный оператор, он приме-

няется к двум верхним операндам в стеке и замещает их на получен-

ный результат, что эквивалентно правилу <операнд>::= <операнд><о-

перанд><оператор>.


Информация о работе «Проектирование трансляторов»
Раздел: Информатика, программирование
Количество знаков с пробелами: 319724
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
84334
30
0

... работы. В ходе работы над дипломным проектом разработан транслятор. Проблема создания такого транслятора является очень актуальной, т.к. многим пользователям САПР необходимо доступ к технической документацию, которую удобнее хранить на удаленных серверах в формате HTML. Поэтому степень положительного эффекта от выполнения дипломного проекта научно-исследовательского характера 1=6.5. В ...

Скачать
50249
0
1

... направления, активно развиваемого сейчас в разных коллективах и странах. Отталкиваясь от трансформационной модели смешанных вычислений и от своих работ в области трансляции и оптимизации программ, Ершов определяет концепцию трансформационной машины. Трансформационная машина есть абстрактное вычислительное устройство, выполняющее программы в некотором "сверхязыке", действиями которого являются ...

Скачать
36295
1
7

... 166, 16 Mb RAM, Windows 95 Вывод   В ходе разработки курсового проекта я ближе ознакомился с теорией МП- трансляторов, научился писать программы - конструкторы для построения МП – транслятора по его параметрам с последующей проверкой задаваемых цепочек, закрепил знания по системному программированию. Разрабатывая программу, я научился применять знания дискретной математике, что облегчает ...

Скачать
141647
0
0

... позволяет связывать твёрдотельные модели, сборки или чертежи, созданные с помощью SolidWorks 97, с файлами других приложений, что значительно расширяет возможности автоматизации процесса проектирования. С помощью технологии OLE можно использовать информацию, полученную в других приложениях Windows, для управления моделями и чертежами SolidWorks. Например, размеры модели могут быть рассчитаны в ...

0 комментариев


Наверх