Я изучаю грамматики в Prolog, и у меня есть сомнение относительно конверсий из классических грамматик BNF в форму граммов Prolog DCG.Некоторые сомнения в отношении грамматик BNF и грамматик DCG Prolog
Например, у меня есть следующий BNF грамматика:
<s> ::= a b
<s> ::= a <s> b
, что переписывание, порождает все строки типа:
ab
aabb
aaabbb
aaaabbbb
.....
.....
a^n b^n
Глядя на книги Программирование Иван Братка для искусственного интеллекта он конвертировать эта грамматика BNF в грамматику DCG таким образом:
s --> [a],[b].
s --> [a],s,[b].
At af рвые выглядеть это мне кажется очень похожа на классическую форму грамматики BNF, но у меня есть только сомнения, связанные с , символ используется в DCG
Это не символ логического ИЛИ в Прологе, но это является только разделителем от символа в сгенерированной последовательности.
Правильно ли это?
Он делает то же самое, что и в остальной части Пролога. Он ведет себя как «и». –
ahhh ok ... Я смутил символ «и» символом «или» ... tnx – AndreaNobili
для практических целей: вы можете написать 's -> [a, b] .' – CapelliC