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)


 

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

49308. Усилительное устройство 969.96 KB
  Усилительное устройство - устройство, усиливающее мощность сигнала. С точки зрения схемотехнического построения усилители бывают транзисторные и на базе интегральных микросхем (ИМС). Преимуществами усилителей на базе ИМС являются: меньшие размеры, меньшее потребление и более высокое качество.
49309. Решение математических задач с помощью циклов в среде Delphi 405.18 KB
  Найти количество тех элементов, значения которых нечетны и по модулю превосходят заданное число А. Найти номер последней пары соседних элементов, сумма которых больше заданного числа. Данный проект решено реализовать в среде программирования Borland Delphi.
49310. ДИСКРЕТНАЯ ОБРАБОТКА СИГНАЛОВ И ЦИФРОВАЯ ФИЛЬТРАЦИЯ 1.32 MB
  Тема работы: Дискретная обработка сигналов и цифровая фильтрация 2. Дискретная обработка сигналов и цифровая фильтрация: Методические указания по выполнению курсовой работы. Цифровая фильтрация.
49311. Исследование повышения продаж продукта в гостинице яхонт 110 KB
  Бурное развитие сферы услуг и туризма в россии в последнее десятилетие способствовало формированию системы продвижения сервисных и туристских услуг и, в частности, созданию рекламного рынка. В рыночных условиях предприятия сервиса должны качественно удовлетворять
49312. Геометрические параметры фюзеляжа экраноплана 922.1 KB
  Представим взлетную массу экраноплана m0=mпустmпн где mпуст – масса пустого аппарата mпн–масса полезной нагрузки. Масса пустогоаппарта состоит из следующих элементов: mпуст=mkmcymоб. где mk –масса конструкции; mcy – масса сивой установки; mоб.упр– масса оборудования и управления.
49313. С,Н, Трубецкой о природе сознания 81 KB
  Человеческое сознание предполагает чувственную, телесную организацию, и вместе оно имеет самобытное, идеальное начало. Оно предполагает бессознательную природу, которая организуется и постепенно возвышается до него, ибо оно есть конечный продукт космического развития. И в то же время оно предполагает абсолютное вселенское сознание