🗊 Презентация Генерация кода языков программирования. (Глава 5)

Нажмите для полного просмотра!
Генерация кода языков программирования. (Глава 5), слайд №1 Генерация кода языков программирования. (Глава 5), слайд №2 Генерация кода языков программирования. (Глава 5), слайд №3 Генерация кода языков программирования. (Глава 5), слайд №4 Генерация кода языков программирования. (Глава 5), слайд №5 Генерация кода языков программирования. (Глава 5), слайд №6 Генерация кода языков программирования. (Глава 5), слайд №7 Генерация кода языков программирования. (Глава 5), слайд №8 Генерация кода языков программирования. (Глава 5), слайд №9 Генерация кода языков программирования. (Глава 5), слайд №10 Генерация кода языков программирования. (Глава 5), слайд №11 Генерация кода языков программирования. (Глава 5), слайд №12 Генерация кода языков программирования. (Глава 5), слайд №13 Генерация кода языков программирования. (Глава 5), слайд №14 Генерация кода языков программирования. (Глава 5), слайд №15 Генерация кода языков программирования. (Глава 5), слайд №16 Генерация кода языков программирования. (Глава 5), слайд №17 Генерация кода языков программирования. (Глава 5), слайд №18 Генерация кода языков программирования. (Глава 5), слайд №19 Генерация кода языков программирования. (Глава 5), слайд №20 Генерация кода языков программирования. (Глава 5), слайд №21 Генерация кода языков программирования. (Глава 5), слайд №22 Генерация кода языков программирования. (Глава 5), слайд №23 Генерация кода языков программирования. (Глава 5), слайд №24 Генерация кода языков программирования. (Глава 5), слайд №25 Генерация кода языков программирования. (Глава 5), слайд №26 Генерация кода языков программирования. (Глава 5), слайд №27 Генерация кода языков программирования. (Глава 5), слайд №28 Генерация кода языков программирования. (Глава 5), слайд №29 Генерация кода языков программирования. (Глава 5), слайд №30 Генерация кода языков программирования. (Глава 5), слайд №31

Содержание

Вы можете ознакомиться и скачать презентацию на тему Генерация кода языков программирования. (Глава 5). Доклад-сообщение содержит 31 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Генерация кода языков программирования. (Глава 5), слайд №1
Описание слайда:

Слайд 2


5.1 Генерация внутреннего представления программы Результатом работы синтаксического анализатора должно быть некоторое представление программы,...
Описание слайда:
5.1 Генерация внутреннего представления программы Результатом работы синтаксического анализатора должно быть некоторое представление программы, которое отражает ее синтаксическую структуру. Программа в таком представлении дальше может либо интерпретироваться либо транслироваться в объектный код.

Слайд 3


5.1.1 Язык внутреннего представления программы Свойства: Он позволяет фиксировать синтаксическую структуру программы. Текст на нем можно...
Описание слайда:
5.1.1 Язык внутреннего представления программы Свойства: Он позволяет фиксировать синтаксическую структуру программы. Текст на нем можно автоматически генерировать на этапе синтаксического разбора. Его конструкции должны достаточно просто транслироваться в объектный код либо достаточно эффективно интерпретироваться.

Слайд 4


5.1.1 Язык внутреннего представления программы Некоторые общепринятые способы внутреннего представления программы: Постфиксная запись; Префиксная...
Описание слайда:
5.1.1 Язык внутреннего представления программы Некоторые общепринятые способы внутреннего представления программы: Постфиксная запись; Префиксная запись; Многоадресный код с неявно именуемыми результатами (триады); Многоадресный код с явно именуемыми результатами (тетрады); Связные списочные структуры, представляющие деревья операций.

Слайд 5


Пример ::= := ::= + | ::= * | ::= () | A:=B*C+D ABC*D+:= Польская инверсная запись
Описание слайда:
Пример ::= := ::= + | ::= * | ::= () | A:=B*C+D ABC*D+:= Польская инверсная запись

Слайд 6


Пример
Описание слайда:
Пример

Слайд 7


5.1.2 ПОЛИЗ В полизе операнды выполняются слева направо в порядке их следования (в инфиксной записи), знаки операций размещают таким образом, что...
Описание слайда:
5.1.2 ПОЛИЗ В полизе операнды выполняются слева направо в порядке их следования (в инфиксной записи), знаки операций размещают таким образом, что знаку операции непосредственно предшествуют операнды, скобки отсутствуют. a*(b-c)/d-(e+f)*g ПОЛИЗ: abc-*d/ef+g*- Формальное определение постфиксной записи: Если E – единственный операнд, то полизом такого выражения будет этот операнд Если есть выражение вида E1 Ѳ E2, где Ѳ – бинарная операция, то E1' E2' Ѳ, где E1', E2' – полизы E1 и E2. Если Ѳ E, где Ѳ – знак унарной операции, то E' Ѳ, где E' – полиз E. Полизом выражения (E) будет E', где E' – полиз E.

Слайд 8


5.1.2 ПОЛИЗ Алгоритм интерпретации Полиза. Используем стек, выражения читаем слева направо. Если очередным элементом полиза является операнд, то...
Описание слайда:
5.1.2 ПОЛИЗ Алгоритм интерпретации Полиза. Используем стек, выражения читаем слева направо. Если очередным элементом полиза является операнд, то заталкиваем в стек. Если операция, то из стека выталкиваем необходимое количество операндов, проводим вычисления и результат заталкиваем в стек.

Слайд 9


5.2 Синтаксически управляемый перевод На практике синтаксический, семантический анализ и генерация внутреннего представления программы осуществляется...
Описание слайда:
5.2 Синтаксически управляемый перевод На практике синтаксический, семантический анализ и генерация внутреннего представления программы осуществляется одновременно. Существует несколько способов, один из них – синтаксически управляемый перевод. В основе СУ – перевода лежит способ сопоставления правилам грамматики соответствующих процедур генерации (семантические подпрограммы).

Слайд 10


5.2.1 Генерация внутреннего представления арифметического выражения
Описание слайда:
5.2.1 Генерация внутреннего представления арифметического выражения

Слайд 11


5.2.1 Генерация внутреннего представления арифметического выражения Левосторонний вывод E => T => T*F =>F*F => x*F => x*(E) => x*(E+T) => x*(T+T) =>...
Описание слайда:
5.2.1 Генерация внутреннего представления арифметического выражения Левосторонний вывод E => T => T*F =>F*F => x*F => x*(E) => x*(E+T) => x*(T+T) => x*(F+T) => x*(x+T) => x*(x+F) => x*(x+y) 2 3 4 6 5 1 2 4 6 4 7 * x + x y префиксная запись Правосторонний вывод E => T => T*F => T*(E) => T*(E+T) => T*(E+F) => T*(E+y) => T*(T+y) => T*(F+y) => T*(x+y) => F*(x+y) =>x*(x+y) 6 4 6 4 2 7 4 1 5 3 2 x x y + * постфиксная запись

Слайд 12


5.2.2 Трансляция кода для интерпретации
Описание слайда:
5.2.2 Трансляция кода для интерпретации

Слайд 13


5.2.2 Трансляция кода для интерпретации xADD proc near pop bp; адрес возврата pop ax; первый операнд pop bx; второй операнд ADD ax,bx; сложение Push...
Описание слайда:
5.2.2 Трансляция кода для интерпретации xADD proc near pop bp; адрес возврата pop ax; первый операнд pop bx; второй операнд ADD ax,bx; сложение Push ax; результат в стек Push bp; адрес возврата в стек ret ; возврат xADD endp

Слайд 14


5.2.2 Трансляция кода для интерпретации Про операцию присвоения I := E В полизе IE’:= , где I – адрес, E’ – полиз E
Описание слайда:
5.2.2 Трансляция кода для интерпретации Про операцию присвоения I := E В полизе IE’:= , где I – адрес, E’ – полиз E

Слайд 15


Пример написания семантических процедур Дана грамматика для описания дробных чисел с точкой. Обеспечить перевод числа таким образом, чтобы целая...
Описание слайда:
Пример написания семантических процедур Дана грамматика для описания дробных чисел с точкой. Обеспечить перевод числа таким образом, чтобы целая часть стала дробной, а дробная – целой. 1 := 2 := . 3 < целое > := 4 < целое > := 5 := 0 | 1 | … |9 0 { int f=0; } 2 { f=1; } 5 { if (f) printf(“%c”, c); else q.enque(c); // добавить в очередь} 1 { printf(“.”); while (!q.queue()) printf(“%c”, q.deque);}

Слайд 16


5.2.3 Генерация кода для оператора READ
Описание слайда:
5.2.3 Генерация кода для оператора READ

Слайд 17


5.2.4 Генерация кода для безусловного перехода goto L [jmp L] [L: ] Оператор перехода в терминах ПОЛИЗа означает, что процесс интерпретации надо...
Описание слайда:
5.2.4 Генерация кода для безусловного перехода goto L [jmp L] [L: ] Оператор перехода в терминах ПОЛИЗа означает, что процесс интерпретации надо продолжить с того элемента ПОЛИЗа, который указан как операнд операции перехода. Чтобы можно было ссылаться на элементы ПОЛИЗа, будем считать, что все они перенумерованы, начиная с 1 (допустим, занесены в последовательные элементы одномерного массива). Пусть ПОЛИЗ оператора, помеченного меткой L, начинается с номера p, тогда оператор перехода goto L в ПОЛИЗе можно записать как p ! где ! - операция выбора элемента ПОЛИЗа, номер которого равен p.

Слайд 18


5.2.5 Генерация кода для оператора IF 1. If B then S Введем вспомогательную операцию - условный переход "по лжи" с семантикой if (not B)...
Описание слайда:
5.2.5 Генерация кода для оператора IF 1. If B then S Введем вспомогательную операцию - условный переход "по лжи" с семантикой if (not B) then goto L Это двухместная операция с операндами B и L. Обозначим ее !F ПОЛИЗ: B’ p !F где p - номер элемента, с которого начинается ПОЛИЗ оператора, помеченного меткой L. 2. if B then S1 else S2 if (not B) then goto L2; S1; goto L3; L2: S2; L3: ... ПОЛИЗ: B’ p2 !F S1’ p3 ! S2’ ...

Слайд 19


5.2.5 Генерация кода для оператора IF
Описание слайда:
5.2.5 Генерация кода для оператора IF

Слайд 20


5.2.5 Генерация кода для оператора IF
Описание слайда:
5.2.5 Генерация кода для оператора IF

Слайд 21


5.2.6 Генерация кода для цикла WHILE
Описание слайда:
5.2.6 Генерация кода для цикла WHILE

Слайд 22


5.2.6 Генерация кода для цикла WHILE
Описание слайда:
5.2.6 Генерация кода для цикла WHILE

Слайд 23


5.2.6 Генерация кода для цикла WHILE
Описание слайда:
5.2.6 Генерация кода для цикла WHILE

Слайд 24


5.2.7 Генерация кода для цикла FOR
Описание слайда:
5.2.7 Генерация кода для цикла FOR

Слайд 25


5.2.7 Генерация кода для цикла FOR
Описание слайда:
5.2.7 Генерация кода для цикла FOR

Слайд 26


5.2.7 Генерация кода для цикла FOR
Описание слайда:
5.2.7 Генерация кода для цикла FOR

Слайд 27


5.2.7 Генерация кода для цикла FOR
Описание слайда:
5.2.7 Генерация кода для цикла FOR

Слайд 28


5.2.8 Генерация кода для оператора CASE
Описание слайда:
5.2.8 Генерация кода для оператора CASE

Слайд 29


5.2.9 Генерация кода для цикла с постусловием REPEAT
Описание слайда:
5.2.9 Генерация кода для цикла с постусловием REPEAT

Слайд 30


5.2.10 Генерация кода для раздела объявления переменных
Описание слайда:
5.2.10 Генерация кода для раздела объявления переменных

Слайд 31


Пример. Генерация кода
Описание слайда:
Пример. Генерация кода



Похожие презентации
Mypresentation.ru
Загрузить презентацию