Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Дерево синтаксического разбора
Рассмотрим примеры применения дерева при решении некоторых реальных задач. Они могут использоваться для представления таких конструкций реального
Дерево синтаксического разбора – результат синтаксического анализа, т.е. результат процесса сопоставления линейной последовательности лексем (слов, токенов) естественного или формального языка с его формальной грамматикой. Синтаксический анализатор – это программа или часть программы, выполняющая синтаксический анализ. В ходе синтаксического анализа исходный текст преобразуется в структуру данных, обычно — в дерево, которое отражает синтаксическую структуру входной последовательности и хорошо подходит для дальнейшей обработки (рис. 2).
Разбор арифметического выражения Как транслятор (программа-переводчик, которая преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд) обрабатывает и выполняет арифметические и логические выражения, которые он встречает в программе? Один из вариантов – представить это выражение в виде двоичного дерева. Например, выражению (a + b) / (c - d + 1) соответствует двоичное дерево разбора, показанное на рисунке 3.
Формы записи выражений
Что получается при прохождении таких двоичных деревьев? В зависимости от варианта обхода такого бинарного дерева можно получить разные формы записи выражения. Префиксная форма записи
Прямое прохождение дерева (корень – левое поддерево – правое поддерево) дает то есть знак операции (корень) предшествует своим операндам. Такая форма записи арифметических выражений называется префиксной. Инфиксная форма записи
Симметричный обход (левое поддерево – корень – правое поддерево) дает запись вида , или инфиксную форму, которая совпадает с обычной записью, но без учета скобок.
Поскольку скобок нет, правильный порядок операций невозможно восстановить по инфиксной записи. Постфиксная форма записи
В трансляторах широко используется постфиксная запись выражений, которая получается в результате обратного обхода (левое поддерево - правое поддерево - корень). В такой записи знак операции стоит после обоих операндов:
|
|||||||||||||
Последнее изменение этой страницы: 2021-01-08; просмотров: 1091; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.186.6 (0.004 с.) |