22 / 0 / 0
Регистрация: 25.12.2018
Сообщений: 5
|
|
1 | |
Алгоритм преобразования контекстно-свободной грамматики к нормальной форме Хомского25.12.2018, 02:23. Показов 2534. Ответов 3
Всем доброго времени суток! Передо мной встала задача:
"Задана контекстно-свободная грамматика, задается как два множества элементов, и набор правил. Способ задания грамматики не имеет значение, можно описывать ее в текстовом файле, например. Грамматика в нормальной форме Хомского - контекстно-свободная грамматика , в которой каждое правило имеет один из следующих трех видов: S->e,A->a,A->BC Стоит задача, заданную контекстно-свободную грамматику преобразовать к виду Хомского. " Для реализации алгоритма я выбрал C#. Так же хочу отметить, что с грамматиками я столкнулся впервые, и не имею нужного фундамента знаний. В вики нашел следующий алгоритм: 1)Уберём длинные правила. 2)Удаление ε-правил. 3)Удаление цепных правил. 4)Удалим бесполезные символы. 5)Уберём ситуации, когда в правиле встречаются несколько терминалов. Немного почитав о грамматиках, написал парсер для КС заданной с клавиатуры. Так же покончил с длинными правилами. И начал разбираться со вторым пунктом. Тут вошел в ступор, так как не понимаю зачем нам избавляться от ε-правил, в дальнейшем понял что дело именно в том что S-начальное состояния. Толком в этом не разобрался. НО это подтолкнуло меня убедиться в верности этого алгоритма, не найдя ничего на русском, я полез в искать информацию на других языках. Нашел много алгоритмов, все они разные(хотя,имеют пересечения с тем что я взял за основу), а так же меняется порядок действий. Вопрос заключается в правильности выбранного алгоритма, и порядком его действий. Я бы с удовольствием разобрался сам, но времени на сдачу работы осталось совсем немного. P.S. буду рад любым советам и комментариям, информации по данной задаче P.S.S. прошу заранее понимать, что мой уровень владения темы поверхностный Благодарю за внимание!
0
|
25.12.2018, 02:23 | |
Ответы с готовыми решениями:
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 |
0
|
02.06.2019, 00:20 | |
02.06.2019, 00:20 | |
Помогаю со студенческими работами здесь
4
Привести к предваренной нормальной форме (ПНФ) и к сколемовской нормальной форме (СНФ) Как выглядит код грамматики Хомского? Преобразовать в нормальную форму Хомского КС-грамматики. Разработать программное средство, распознающее тип введенной пользователем грамматики по классификации Хомского Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |