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. Если сканируемый символ - бинарный оператор, он приме-
няется к двум верхним операндам в стеке и замещает их на получен-
ный результат, что эквивалентно правилу <операнд>::= <операнд><о-
перанд><оператор>.
... работы. В ходе работы над дипломным проектом разработан транслятор. Проблема создания такого транслятора является очень актуальной, т.к. многим пользователям САПР необходимо доступ к технической документацию, которую удобнее хранить на удаленных серверах в формате HTML. Поэтому степень положительного эффекта от выполнения дипломного проекта научно-исследовательского характера 1=6.5. В ...
... направления, активно развиваемого сейчас в разных коллективах и странах. Отталкиваясь от трансформационной модели смешанных вычислений и от своих работ в области трансляции и оптимизации программ, Ершов определяет концепцию трансформационной машины. Трансформационная машина есть абстрактное вычислительное устройство, выполняющее программы в некотором "сверхязыке", действиями которого являются ...
... 166, 16 Mb RAM, Windows 95 Вывод В ходе разработки курсового проекта я ближе ознакомился с теорией МП- трансляторов, научился писать программы - конструкторы для построения МП – транслятора по его параметрам с последующей проверкой задаваемых цепочек, закрепил знания по системному программированию. Разрабатывая программу, я научился применять знания дискретной математике, что облегчает ...
... позволяет связывать твёрдотельные модели, сборки или чертежи, созданные с помощью SolidWorks 97, с файлами других приложений, что значительно расширяет возможности автоматизации процесса проектирования. С помощью технологии OLE можно использовать информацию, полученную в других приложениях Windows, для управления моделями и чертежами SolidWorks. Например, размеры модели могут быть рассчитаны в ...
0 комментариев