Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
I.9.2. Запись правил грамматики в графическом виде
Вся грамматика представляется в форме набора специальным образом построенных диаграмм. Она доступна не для всех типов грамматик, а только для тех, где в левой части правил присутствует не более одного символа. Но этого достаточно, чтобы можно было ее использовать. В этой форме записи каждому нетерминальному символу грамматики соответствует диаграмма, построенная в виде направленного графа, который имеет следующие типы вершин: 1)точка входа в диаграмме никак не обозначается, из нее начинается входная дуга; 2) нетерминальный символ обозначается прямоугольником, в котором вписано обозначение символа; 3)цепочка нетерминальных символов на диаграмме обозначается овалом, кругом, внутрь которого вписана цепочка; 4) узловая точка в диаграмме обозначается или закрашена кружком; 5)точка выхода никак на диаграмме не обозначается, в нее входит дуга графа. Каждая дуга имеет одну точку входа и одну точку выхода, но сколько угодно вершин 3ех типов. Пример графического представления цепочки целых десятичных цифр со знаком
Двигаясь по диаграмме определенным образом, исключаем из цепочки символов все нетерминальные символы и в итоге в цепочке останутся только терминальные символы.
I.10. Распознаватель I.10.1. Схема распознавателя Разборщик – это специальный автомат, который позволяет определить принадлежность цепочки символов некоторому языку. Задача его в том, чтобы на основании исходной цепочки символов определить принадлежит ли она заданному языку или нет. Распознаватель – это один из способов определения языка.
В общем виде его можно изобразить в виде условной модели, которая отражает работу алгоритма распознавателя.
Лента (1) содержит входную цепочку символов. К ней примыкает считывающая головка для считывания символов этой цепочки. УУ – координирует работу распознавателя, оно имеет набор состояний и память для хранения своего состояния. Внешняя память хранит информацию в процессе работы распознавателя и, в отличии от УУ, имеет значительно огромный объем. Распознаватель работает символами своего алфавита, который конечен. Он содержит все допустимые символы входных цепочек, а так же дополнительный алфавит символов, которые могут обрабатываться УУ и храниться во внешней памяти. Распознаватель выполняет следующие операции:
1) чтение очередного символа из входной цепочки; 2) сдвиг входной цепочки на заданное количество символов; 3) доступ к внешней памяти для чтения или записи информации; 4) преобразование информации в памяти. Он работает по шагам или тактам. В начале такта считывается очередной символ из входной цепочки, и в зависимости от этого символа УУ определяет, какие действия надо выполнять. В начале каждого такта состояние распознавателя определяется его конфигурацией, которая в процессе работы меняется. Конфигурация определяется следующими параметрами: 1) содержанием входной цепочки символов и в положении считывающей головки в ней; 2) состоянием УУ; 3) содержанием внешней памяти. В начале конфигурации считывающая головка обозревает 1ый символ входной цепочки. УУ находится в начальном заданном состоянии, а внешняя память либо пуста, либо содержит информацию. Для распознавателя создается 1 или несколько конфигураций. Язык, определяемый распознавателем, - это множество всех цепочек, допускаемые распознавателем.
I.10.2. Задача разбора Для каждого языка программирования важно уметь не только построить текст программы, но и определить принадлежность текста к данному языку. Эту задачу решают компиляторы в числе прочих задач. Компилятор должен построить эквивалентную ей результирующую программу. В отношении исходной программы компилятор выступает в роле распознавателя. Грамматики и распознаватель – два независимых метода, которые могут быть использованы для определения какого-либо языка. При создании компилятора для некоторого языка программирования возникает задача связи между собой этих методов создания языка. Разработчикам известны языки программирования и грамматика (и стандартный язык). Задача разработчика построить распознаватель для заданного языка, который будет основой в компиляторе. Таким образом, задача разбора заключается в следующем: на основе грамматики некоторого языка построить распознаватель для этого языка. Заданная грамматика и распознаватель должны быть эквивалентны, т.е. определять один и тот же язык. Задача разбора в общем виде может быть решена не для всех языков. Языки программирования не являются чисто формальными языками и несут в себе некоторый смысл – семантику, то задача разбора для создания реальных компиляторов понимается несколько шире, чем она формируется для чисто формальных языков, т.е.компилятор должен определить, принадлежность одной цепочки символов заданному языку, но и определить ее смысловую нагрузку. Необходимо выявить те правила грамматики, на основании которых цепочка была рассмотрена. Задача разбора расширяется тем, что распознаватель в составе компилятора должен установить не только факт ошибки в входной программе, но и по возможности определить тип ошибки, но и то место в входной цепочке символов, где она встречается.
|
||||||
Последнее изменение этой страницы: 2016-08-15; просмотров: 384; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.186.218 (0.007 с.) |