Отношение приоритета Вирта – Вебера - Wirth–Weber precedence relationship
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны)
Эта статья не цитировать любой источники. Пожалуйста помоги улучшить эту статью к добавление цитат в надежные источники. Материал, не полученный от источника, может быть оспорен и удаленный. Найдите источники:«Отношение приоритета Вирта – Вебера» – Новости·газеты·книги·ученый·JSTOR(Декабрь 2009 г.) (Узнайте, как и когда удалить этот шаблон сообщения)
Эта статья предоставляет недостаточный контекст для тех, кто не знаком с предметом. Пожалуйста помоги улучшить статью к обеспечение большего контекста для читателя.(Октябрь 2009 г.) (Узнайте, как и когда удалить этот шаблон сообщения)
Эта статья может быть слишком техническим для большинства читателей, чтобы понять. Пожалуйста помогите улучшить это к сделать понятным для неспециалистов, не снимая технических деталей. (Июль 2012 г.) (Узнайте, как и когда удалить этот шаблон сообщения)
(Узнайте, как и когда удалить этот шаблон сообщения)
Цель состоит в том, чтобы определить, когда жизнеспособные префиксы иметь вращаться и должен быть сокращен. А означает, что вращаться найден, означает, что потенциал вращаться начинается, и означает, что мы все еще в том же вращаться.
Голова*(Икс) является Икс если Икс является терминалом, а если Икс нетерминальный, Head*(Икс) - это набор, в котором только клеммы принадлежат Head+(Икс). Этот набор эквивалентен Первый сет или же Fi (Икс) описано в LL парсер.
Голова+(Икс) и хвост+(Икс) равны, если Икс это терминал.
Псевдокод для вычисления отношений:
RelationTable: = ∅
Для каждого производства
Для каждых двух соседних символов X Y в α
добавить (RelationTable, )
добавить (RelationTable, )
добавить (RelationTable, )
добавить (RelationTable, ) куда S - начальный нетерминал грамматики, а $ - маркер предела
добавить (RelationTable, ) куда S - начальный нетерминал грамматики, а $ - маркер предела
и используются с наборами вместо элементов, как они были определены, в этом случае вы должны добавить все декартово произведение между наборами / элементами.
Примеры
Голова+(а) = ∅
Голова+(S) = {а, в}
Голова+(б) = ∅
Голова+(c) = ∅
Хвост+(а) = ∅
Хвост+(S) = {до н.э}
Хвост+(б) = ∅
Хвост+(c) = ∅
Голова*(а) = а
Голова*(S) = {а, в}
Голова*(б) = б
Голова*(c) = c
а Следующий на S
S Следующий на S
S Следующий на б
есть только один символ, поэтому отношение не добавляется.
таблица приоритетов
дальнейшее чтение
Ахо, Альфред V .; Ульман, Джеффри Д., Теория синтаксического анализа, перевода и компиляции