22 / 0 / 0
Регистрация: 25.12.2018
Сообщений: 5
1

Алгоритм преобразования контекстно-свободной грамматики к нормальной форме Хомского

25.12.2018, 02:23. Показов 2534. Ответов 3

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток! Передо мной встала задача:
"Задана контекстно-свободная грамматика, задается как два множества элементов, и набор правил. Способ задания грамматики не имеет значение, можно описывать ее в текстовом файле, например. Грамматика в нормальной форме Хомского - контекстно-свободная грамматика , в которой каждое правило имеет один из следующих трех видов:
S->e,A->a,A->BC
Стоит задача, заданную контекстно-свободную грамматику преобразовать к виду Хомского. "
Для реализации алгоритма я выбрал C#. Так же хочу отметить, что с грамматиками я столкнулся впервые, и не имею нужного фундамента знаний. В вики нашел следующий алгоритм:
1)Уберём длинные правила.
2)Удаление ε-правил.
3)Удаление цепных правил.
4)Удалим бесполезные символы.
5)Уберём ситуации, когда в правиле встречаются несколько терминалов.

Немного почитав о грамматиках, написал парсер для КС заданной с клавиатуры. Так же покончил с длинными правилами. И начал разбираться со вторым пунктом. Тут вошел в ступор, так как не понимаю зачем нам избавляться от ε-правил, в дальнейшем понял что дело именно в том что S-начальное состояния. Толком в этом не разобрался. НО это подтолкнуло меня убедиться в верности этого алгоритма, не найдя ничего на русском, я полез в искать информацию на других языках. Нашел много алгоритмов, все они разные(хотя,имеют пересечения с тем что я взял за основу), а так же меняется порядок действий.

Вопрос заключается в правильности выбранного алгоритма, и порядком его действий. Я бы с удовольствием разобрался сам, но времени на сдачу работы осталось совсем немного.

P.S. буду рад любым советам и комментариям, информации по данной задаче
P.S.S. прошу заранее понимать, что мой уровень владения темы поверхностный
Благодарю за внимание!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2018, 02:23
Ответы с готовыми решениями:

Нужен напарник - "С программист" для написания программы по распознаванию контекстно-свободной грамматики
нужен напарник имеющий теоретические знания (или практические навыки) по синтаксическому анализу,...

Устраните лишние символы из грамматики (Контекстно-свободные грамматики)
Помогите пожалуйста.

С++ является контекстно независимым языком по иерархии Хомского?
С++ является контекстно независимым языком? Можете привести пример контекстно-зависимого языка?

Грамматики и Контекстно - свободные языки
ребят помогите решить, нужно любые 5 заданий решить, я смог только 2.4 решить...

3
22 / 0 / 0
Регистрация: 25.12.2018
Сообщений: 5
01.06.2019, 23:10  [ТС] 2
Алгоритм верный, задача решена спасибо за отсутствие ответов, я на вас не в обиде
0
vantfiles
02.06.2019, 00:01
  #3

Не по теме:

не прошло и полгода :D

0
22 / 0 / 0
Регистрация: 25.12.2018
Сообщений: 5
02.06.2019, 00:20  [ТС] 4
Цитата Сообщение от vantfiles Посмотреть сообщение

Не по теме:

не прошло и полгода :D

К счастью задача решена была в туже неделю, давно сюда не заходил
0
02.06.2019, 00:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2019, 00:20
Помогаю со студенческими работами здесь

Привести к предваренной нормальной форме (ПНФ) и к сколемовской нормальной форме (СНФ)
Привести к предваренной нормальной форме (ПНФ) и к сколемовской нормальной форме (СНФ). \ \forall...

Как выглядит код грамматики Хомского?
Как выглядит код грамматики Хомского?

Преобразовать в нормальную форму Хомского КС-грамматики.
Преобразовать в нормальную форму Хомского КС-грамматики G=(N,\Sigma ,P,S) 1. S\rightarrow AB,...

Разработать программное средство, распознающее тип введенной пользователем грамматики по классификации Хомского
3) разработать программное средство, распознающее тип введенной пользователем грамматики по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru