
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
05.04.2015, 14:56
|
|||
|---|---|---|---|
Ньюансы создания строки по правилам граматики |
|||
|
#18+
Мне надо создать строку которая порождается следующими правилами грамматики: P={ включается следующие 6 правил. S->IO ; O->:=D; D->(D|(А|)Z|) ; A->aZ|bZ|cD|bD|ID ; Z->+A|<A|andD|>A; I->x. Не беря во внимание разницу между терминальными и нетерминальными (малими и большими)символами, понятно что начинаем c S. I заменяем на x. Остается О. Но как быть с символом присваивания непонятно. Значит ли то что такая запись то самое что если бы его не было то есть О-> D. Вот третье правило уже вызывает затруднение. -- Я так понимаю что начинать надо с(А|)которое значит что это или А или ничего?? А потом уже выбирать между D (А|) Z и "ничего". Один з двух главных вопросов -- как это OR правило здесь применять. Как и 4 ом правиле где повторяются уже прежние символы I,D? Надо выбирать какой то один вариант? Или перебирать все варианты. В пятом правиле вообще все сложно -- перечитав несколько пособий и разделов по граматики не видел таких примеров. Что это за +А, <А, >А, andD -- как их воспринимать? То есть здесь два вопроса главных: как использовать эти OR операторы при выведение строки, и что значат операторы плюс, больше меньше, "И" в предпоследнем правиле. Хотя есть еще два менее важных вопроса- -что значит оператор присваевание и должна ли быть такая строка одна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2015, 18:07
|
|||
|---|---|---|---|
Ньюансы создания строки по правилам граматики |
|||
|
#18+
Во первых, учись форматировать сообщения. Код: plaintext 1. 2. 3. 4. 5. 6. Во вторых, в CFG есть только терминаторы и правила. Из служебных символов есть только: -> после имени правила которое мы определяем и | для обозначения ИЛИ. Все остальное терминалы и правила. Отсюда, O->:=D значит что правило O это терминал ":=" и D после него. Аналогично и с +A, <A, и тд это "терминатор и правило". Еще вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.04.2015, 22:15
|
|||
|---|---|---|---|
Ньюансы создания строки по правилам граматики |
|||
|
#18+
White Owl, У меня после P= стоит фигурная скобка. Так что такое выражение значит O->:=D или такое >A. И как применять эти операторы ИЛИ (или особенно такие --(А|) )--надо все варианты перебирать или какой то один? Уже до десятка материалов прочитал такого не встречал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.04.2015, 05:40
|
|||
|---|---|---|---|
Ньюансы создания строки по правилам граматики |
|||
|
#18+
arrtУ меня после P= стоит фигурная скобка.Это не важно. arrtТак что такое выражение значит O->:=D или такое >A.терминал и правило. Правило О формируется из строки ":=" и того что вернуло правило D. arrtИ как применять эти операторы ИЛИ (или особенно такие --(А|) )--надо все варианты перебирать или какой то один?Да, все варианты и ни один из них... Ты в неправильном направлении все это читаешь. Надо не строку формировать на основе CFG, а отвечать на вопрос: подчиняется ли данная строка этому CFG? Берешь строку и пытаешься построить дерево в котором нодами будут правила CFG, а листями терминалы. И все эти терминалы должны в сумме быть строкой. arrtУже до десятка материалов прочитал такого не встречалПлохо искал. В вики оно все хорошо описано: http://en.wikipedia.org/wiki/Context-free_grammar Посмотри пример под заголовком algebraic expression. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=16&mobile=1&tid=1341049]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 298ms |

| 0 / 0 |
