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

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Генерация кода языков программирования. (Глава 5) абсолютно бесплатно. Урок-презентация на эту тему содержит всего 31 слайд. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Генерация кода языков программирования. (Глава 5)



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    31 слайд
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    386.08 kB
  • Просмотров:
    88
  • Скачиваний:
    0
  • Автор:
    неизвестен



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

№1 слайд
Содержание слайда:

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

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

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

№5 слайд
Пример lt stmt gt lt id gt lt
Содержание слайда: Пример <stmt> ::= <id> := <expr> <expr> ::= <expr> + <term> | <term> <term> ::= <term> * <factor> | <factor> <factor> ::= (<expr>) | <id> A:=B*C+D ABC*D+:= Польская инверсная запись

№6 слайд
Пример
Содержание слайда: Пример

№7 слайд
. . ПОЛИЗ В полизе операнды
Содержание слайда: 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 ПОЛИЗ Алгоритм интерпретации Полиза. Используем стек, выражения читаем слева направо. Если очередным элементом полиза является операнд, то заталкиваем в стек. Если операция, то из стека выталкиваем необходимое количество операндов, проводим вычисления и результат заталкиваем в стек.

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

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

№11 слайд
. . Генерация внутреннего
Содержание слайда: 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 Трансляция кода для интерпретации

№13 слайд
. . Трансляция кода для
Содержание слайда: 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

№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

№17 слайд
. . Генерация кода для
Содержание слайда: 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) 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

№20 слайд
. . Генерация кода для
Содержание слайда: 5.2.5 Генерация кода для оператора IF

№21 слайд
. . Генерация кода для цикла
Содержание слайда: 5.2.6 Генерация кода для цикла WHILE

№22 слайд
. . Генерация кода для цикла
Содержание слайда: 5.2.6 Генерация кода для цикла WHILE

№23 слайд
. . Генерация кода для цикла
Содержание слайда: 5.2.6 Генерация кода для цикла WHILE

№24 слайд
. . Генерация кода для цикла
Содержание слайда: 5.2.7 Генерация кода для цикла FOR

№25 слайд
. . Генерация кода для цикла
Содержание слайда: 5.2.7 Генерация кода для цикла FOR

№26 слайд
. . Генерация кода для цикла
Содержание слайда: 5.2.7 Генерация кода для цикла FOR

№27 слайд
. . Генерация кода для цикла
Содержание слайда: 5.2.7 Генерация кода для цикла FOR

№28 слайд
. . Генерация кода для
Содержание слайда: 5.2.8 Генерация кода для оператора CASE

№29 слайд
. . Генерация кода для цикла
Содержание слайда: 5.2.9 Генерация кода для цикла с постусловием REPEAT

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

№31 слайд
Пример. Генерация кода
Содержание слайда: Пример. Генерация кода

Скачать все slide презентации Генерация кода языков программирования. (Глава 5) одним архивом: