20620

Семантический анализ

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Генерация промежуточного кода Основные формы промежуточного кода6 Для примитивных трансляторов используется синтаксическое дерево или DAG Постфиксная запись Трехадресный код: x:=y op z Пример: синтаксическое дерево t1=c t2=bt1 t4=c t5=bt4 t3=t5t2 a=t3 DAG t1=c t2=bt1 t3=t2t2 a=t3 постфиксная запись Трехадресный код – представляет собой выражение типа Типы трехадресных конструкций инструкции присвоения где op – арифметическая или логическая операция где op – унарная операция инструкции копирования инструкции...

Русский

2013-07-31

144.5 KB

1 чел.

Лекция № 7.

Семантический анализ

Проверки, выполняемые на этапе семантического анализа.

  1.  проверка типов.

На этом этапе проверяется совместимость операторов и операндов.

Существуют фундаментальные и создаваемые типы.

Проверка типов выполняется в два этапа:

  •  статическая – производится на этапе семантического анализа.
  •  динамическая – производится на этапе выполнения программы.

  1.  проверка управления.
  •  Проверка согласованность команд управления
  •  Вложенность команд управления и т.п.
  1.  проверка единственности.

Переменные, функции, … с одинаковыми именами.

4. Генерация  промежуточного кода

Основные формы промежуточного кода6

  •  Для примитивных трансляторов используется синтаксическое дерево или DAG
  •  Постфиксная запись
  •  Трехадресный код: x:=y op z

Пример:

  1.   синтаксическое дерево

t1=-c

t2=b*t1

t4=-c

t5=b*t4

t3=t5+t2

a=t3

  1.   DAG

t1=-c

t2=b*t1

t3=t2+t2

a=t3

  1.  постфиксная запись

Трехадресный код – представляет собой выражение типа

Типы трехадресных конструкций

  1.  инструкции присвоения
  •   , где opарифметическая или логическая операция
  •   , где op – унарная операция
  1.  инструкции копирования

  1.  инструкции безусловного перехода

, где R метка

  1.  инструкции условного перехода

При представлении программ в виде трехадресного кода, каждой инструкция может быть сопоставлена метка, которая, как правило, сопоставляется с индексом инструкций в массиве инструкций.

Кроме того, используются инструкции для вызова процедур, доступа к индексированным ячейкам памяти, формирования адресов и указателей.

Построение последовательности трехадресной инструкции производится на основе синтаксических правил, соответствующим продукциям языка. Внутреннее представление трехадресной инструкции реализуется в виде последовательности записей с полями для операндов.

Формы представления:

  1.  четверки
    •  первое поле отводится под оператор
    •  два поля отводятся под операнды
    •  четвертое поле отводится под результат

Op

Arg1

Arg2

Res

(0)

-

c

t1

(1)

*

b

t1

t2

(2)

-

c

t4

(3)

*

b

t4

t5

(4)

+

t5

t2

t3

(5)

:=

t3

a

  1.  тройки (отсутствует последний столбец из четверок)
  •  первое поле отводится под оператор
  •  второе поле отводится под первый операнд
  •  третье поле отводится под второй операнд

Op

Arg1

Arg2

(0)

-

c

(1)

*

b

(0)

(2)

-

c

(3)

*

b

(2)

(4)

+

(1)

(3)

(5)

:=

a

(4)

  1.  косвенные тройки (вместо списка троек используется список указателей на тройки (р)). В сравнении с четверками нет лишних переменных, что позволяет экономить память.

Op

Arg1

Arg2

P

(0)

-

c

(10)

(1)

*

b

(0)

(11)

(2)

-

c

(12)

(3)

*

b

(2)

(13)

(4)

+

(1)

(3)

(14)

(5)

:=

a

(4)

(15)

Пример 1.

Построить синтаксическое дерево, постфиксную запись, трехадресный код в виде троек и четверок.

Синтаксическое дерево:

Постфиксная запись:

Трехадресный код:

(0)

+

b

c

t1

(1)

-

t1

t2

(2)

*

a

t2

t3

(0)

+

b

c

(1)

-

(0)

(2)

*

a

(1)

Пример 2.

Синтаксическое дерево:

Постфиксная запись: cd+a+ab+-cd+*+

Трехадресный код:

(0)

+

a

b

t1

(1)

-

t1

t2

(2)

+

d

c

t3

(3)

*

t2

t3

t4

(4)

+

t1

c

t5

(5)

+

t4

t5

t6

(0)

+

a

b

(1)

-

(0)

(2)

+

d

c

(3)

*

(1)

(2)

(4)

+

(0)

c

(5)

+

(3)

(4)


 

А также другие работы, которые могут Вас заинтересовать

31631. ПАТОЛОГІЯ НАДНИРНИКІВ 73 KB
  Ці пептиди володіють тропною дією на клубочкову зону кори наднирників викликаючи надходження альдостерону в кров. Виділяють 3 ефекти АКТГ при дії його на пучкову зону наднирників: 1 гострий ефект протягом декількох хвилин обумовлюється зв’язуванням холестерину з цитохромом P450 і посиленням трансляції наявної інформаційної РНК що викликає істотне збільшення утворення стероїдів; 2 підгострий ефект через десятки годин обумовлюється посиленням процесів транскрипції генів які кодують структуру ферментів стероїдогенезу що проявляється...
31632. ПАТОЛОГІЯ ЩИТОПОДІБНОЇ та ПРИЩИТОПОДІБНИХ ЗАЛОЗ 80 KB
  ТТГ діючи на щитовидну залозу викликає наступні ефекти: а підсилює захоплення і включення йоду в органічні сполуки; б підсилює протеоліз депонованого тиреоглобуліну; в підсилює секрецію Т3 і Т4; г при тривалій дії викликає гіпертрофію і гіперплазію щитоподібної залози. Порушення функції щитоподібної залози. Первинний гіпотиреоз зустрічається при: а аутоімунному тиреоїдиті Хашімото б хронічному фіброзноінвазивному тиреоїдиті Ріделя які супроводжуються дефектами синтезу тиреоїдних гормонів в тиреоїдектомії г лікуванні...
31633. ПАТОФІЗІОЛОГІЯ ПЕЧІНКИ 79.5 KB
  Це обумовлює характерну ознаку печінкової недостатності нестабільний рівень глюкози крові: 1 після прийому їжі розвивається гіперглікемія 2 натще гіпоглікемія. Таке явище супроводжується збільшенням в крові рівня вільного холестерину і зниженням антиатерогенних ліпопротеїнів що сприяє відкладенню холестерину в стінках судин і розвитку атеросклерозу. Порушення участі печінки в білковому обміні включає 3и групи змін: 1 зниження синтезу гепатоцитами альбумінів що веде до гіпоальбумінемії і гіпоонкії крові а на стадії...
31634. Система кодирования информации 19.55 KB
  Система кодирования информации Кодирование информации применяют для унификации формы представления данных которые относятся кразличным типам в целях автоматизации работы с информацией. Например естественные человеческие языки можно рассматривать как системы кодирования понятий для выражения мыслей посредством речи к тому же и азбуки представляют собой системы кодирования компонентов языка с помощью графических символов. Основой этой системы кодирования является представление данных через последовательность двух знаков: 0 и 1. Наименьшая...
31636. Положение слуховой трубы у взрослого и ребенка, связь ее с мышцами мягкого неба, значение для слуховой функции 14.62 KB
  Служит для доступа воздуха из глотки в барабанную полость, чем поддерживается равновесие между давлением в этой полости и внешним атмосферным давлением, что необходимо для правильного проведения к лабиринту колебаний барабанной перепонки.
31637. Накопители на гибких магнитных дисках 99 KB
  Структура накопителя на гибких магнитных дисках Устройство накопителя на гибких магнитных дисках НГМД рис. Все электрические схемы размещаются на печатной плате компонуемой в корпусе НГМД. Обычно в профессиональной ПЭВМ к одному адаптеру через интерфейс можно подключать до четырех НГМД. Для подключения определенных НГМД применяются микропереключатели.
31639. Накопители на оптических дисках 1.41 MB
  Основы оптической записи Методы оптической записи на поверхности подвижного носителя основаны на способности некоторых материалов изменять отражательные свойства на участках которые подвергались тепловому магнитному или комбинированному воздействию. Первоначально для оптической записи использовалось свойство лазерного луча прожигать отверстия в тонком слое металла рис. Такой способ записи используется для НОД с однократной записью. Возможность многократной записи обеспечивается при использовании магнитооптических носителей.