Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 25
1

Грамматика

22.04.2013, 01:53. Показов 1113. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Помогите, пожалуйста, составить грамматику для языка логических выражений. Выражения языка состоят из переменных, констант, операций AND, OR, NOT, а также отношений (отношения определены только для чисел и переменных). Например: a AND (b<10). Я написал генератор SLR-анализаторов, но никак не могу составить адекватную грамматику (для примеров из книжки работает). Сижу вот боюсь, что вдруг для этого языка нельзя построить SLR-грамматику...

Добавлено через 54 минуты
Эта грамматика порождает логические операции со скобками, над переменными и константами булевского типа. Символ V здесь обозначает как раз переменную, рассматривается как терминальный символ, так как я сначала токенизирую строку.
Код
E->e
e->e|t
e->t
t->t&f
t->f
f->(e)
f->!f
f->0
f->1
f->v
Я не понимаю как сюда гармонично воткнуть сравнения. Как можно заметить, f - своеобразный кирпичик, что то, что может быть операндом логической операции. По логике, f может являться и сравнением.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2013, 01:53
Ответы с готовыми решениями:

КС-грамматика
Необходимо построить контекстно свободную граматику порождающую цепочки вида : xnymzn , где:...

Однозначная грамматика без правой и левой рекурсии
Всем привет! Сижу, зубрю системное программирование и наткнулся на такой вопрос: верно ли...

Формальная грамматика
Товарищи программисты, помогите написать на С++ программу которая б проверяла грамматику. Для...

Грамматика в программировании
Страуструп в книге даёт вводные данные про грамматику в программировании и даётся схема Пример...

1
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 25
24.04.2013, 10:30  [ТС] 2
Вообщем, для будущих соискателей. Решил проблему на этапе лексического анализа, а именно предварительно транслировал все сравнения в переменные.
Если вы не хотите пользоваться таким костылём как я, то скорее всего вам придётся модернизировать ваш анализатор, чтобы он предпросматривал не 1 символ (токен) входной последовательности, как мой, а два или больше. Это нужно для корректного распознавания сравнений, ведь если мы видим на входе переменную, для однозначного определения соответствующей продукции нужно знать, в каком контексте переменная употреблена, т.е. является ли она операндом сравнения либо логической операции.
0
24.04.2013, 10:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2013, 10:30
Помогаю со студенческими работами здесь

Чем отличается однозначная грамматика от неоднозначной?
Вопрос, чем отличается однозначная грамматика от неоднозначной? Если можно на пальцах. Спасибо.

LR(1)-грамматика
Здравствуйте. Необходимо понимание действий ДКА с памятью. Имеется файл грамматики С++. вопрос в...

Грамматика
Может быть кто нибудь имел дело с подобными программами. Для проверки грамматики требуется...

Недоделанная грамматика
Здравствуйте!!! Задали написать грамматику...пытаюсь в ней разобраться...Задание было таково:...


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

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