Метод трансляции на основе Польской Инверсной Записи
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
Томский государственный университет
Год издания: 2017
Кол-во страниц: 34
Дополнительно
Вид издания:
Учебно-методическая литература
Уровень образования:
ВО - Бакалавриат
Артикул: 762629.01.99
Учебное пособие представляет собой конспект одного раздела курса лекций, разработанного и читаемого авторами в течение ряда лет студентам 1 курса специальности «Компьютерная безопасность» в рамках дисциплины «Информатика». Раздел посвящен трансляции программ, а именно методу трансляции, основанному на переводе программы на промежуточный язык — в Польскую инверсную запись (ПОЛИЗ). В пособии рассматриваются этапы перевода в ПОЛИЗ и трансляции ПОЛИЗа на язык Ассемблера как для выражений (в том числе содержащих операции присваивания и переменные с индексами), так и для операторов языка С. Теоретический материал иллюстрируется многочисленными примерами; приведены задачи для самостоятельного решения. Авторы выражают надежду, что пособие будет полезно студентам и всем, интересующимся задачей трансляции программ.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 01.03.02: Прикладная математика и информатика
- 02.03.01: Математика и компьютерные науки
- 02.03.02: Фундаментальная информатика и информационные технологии
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Томский государственный университет Факультет прикладной математики и кибернетики Метод трансляции на основе Польской Инверсной Записи Учебно-методическое пособие Томск 2017
© Томский государственный университет, 2017
Введение Методы трансляции программ делятся на 2 группы: 1. Прямые методы – ориентированы на конкретные языки. Для каждой конструкции языка подбирается индивидуальный алгоритм на основе некоторой общей идеи. 2. Синтаксические методы – ориентированы не на конкретный язык, а на класс языков, имеющих одинаковый способ описания синтаксиса языка. Эти методы основаны на теории формальных грамматик. Один из прямых методов использует для трансляции Польскую Инверсную Запись (ПОЛИЗ). Метод предложен польским ученым Яном Лукашевичем. 1. Трансляция выражений 1.1. Определение ПОЛИЗ Первые языки программирования высокого уровня предназначались для решения инженерных и научно-технических задач вычислительного характера. Значительную часть таких программ составляют различные арифметические и логические выражения. Для трансляции выражений разработаны различные методы, но классическим стал метод перевода выражений в промежуточную форму – ПОЛИЗ. Рассмотрим суть этого метода на примере. Пусть дано выражение a + b * c – d/(a + b). Представим его вычисление в виде дерева: в корень дерева поместим последнюю выполняемую операцию; ветви будут соответствовать операндам. В каждой ветви операциям, которые выполняются раньше, соответствуют нижележащие узлы. Висячие вершины называются листьями дерева, они соответствуют операндам.
Выполним левый обход этого дерева по правилу: начать с листа самой левой ветви дерева и обойти все узлы и листья дерева так, чтобы ветви рассматривались слева направо, а узлы – после обхода всех ветвей, исходящих из них (правило обхода «влево – вправо – в корень»). Тогда последовательность обхода задает польскую инверсную запись a b c * + d a b + / - Свойства ПОЛИЗ: 1) бесскобочная запись; 2) операнды – в том же порядке, что и в исходном выражении; 3) операции – в порядке их выполнения; 4) операции располагаются сразу после своих операндов – постфиксная запись. Отсюда название – инверсная (или обратная) запись. Эти свойства позволяют вычислить выражение за один проход слева направо по простому правилу.