![]() |
|
|
![]()
|
|
| GreatStream |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
Помогите плиззз с примерами LL(1)-грамматик, это могут быть какие угодно примеры: Грамматика,задающая вещественные числа с фиксированной точкой со знаком, грамматика задающая натуральные числа со знаком и т.д, главное, чтобы в форме LL(1)-грамматики или научите плиизззз как преобразовать грамматику и привести ее к LL(1) виду, формализованных алгоритмов приведения произвольной грамматики нет, но как-то ведь их приводят к LL(1)-виду.
|
|||
|
||||
| Void |
|
||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 3 Всего: 173 |
Пример LL(1) грамматики: грамматика арифметических выражений.
И быть не может, потому что есть грамматики, не сводящиеся к LL(1). Для приведения к LL(1)-виду может понадобится устранение леворекурсивных правил и левая факторизация. По всем вопросам рекомендуется курить «Дракона» Ахо, Ульмана и Сети. Можно и двухтомник Ахо, Ульмана «Теория синтаксического анализа, перевода и компиляции». -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
| GreatStream |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
Прости, может я чего-то не понимаю, но это не есть LL(1)-грамматика, так как в ней присутствует левая рекурсия, к тому же пример с арифметическими выражениями у меня уже есть, а надо что-нить такое, ну например: грамматика задающая вещественные числа со знаком и фиксированной точкой. Если есть возможность где-нить посмотреть или видел где-нить дай знать плизз, очень надо. А Ахо и Ульмана я смотрел, там по LL(1)-грамматикам тоже в качестве примера только гр-ка арифметических выражений, у Молчанова та же херь |
|||
|
||||
| Void |
|
||||||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 3 Всего: 173 |
Это будет автоматная грамматика. Т.е. она, конечно, разбирается LL(1)-парсерами, но, думаю, не совсем то, что нужно.
Устранимая.
Возьми грамматику Оберона. Вирт специально проектировал язык с LL(1) грамматикой. Ну или просто дополни арифметические выражения простенькими операторами, вроде if..then..else..end (именно с end, так как обычная конструкция с dangling else LL(1) не является). -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||||||
|
|||||||||
| GreatStream |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
Дык видишь есть уже про арифметические операции, надо что-то другое. А у тебя могет есть какая-нить литература в электронном виде или могет знаешь полезные линки. Я пытался найти что-то кроме Ахо, Ульмана, попадаю на сайты непонятного происхождения, на которых контент непонятно от куда взят, видел просто ссылки на Вирта, но так и не нашел его в сети, что в еблиотеку что-ли прийдется ползти? И что за грамматика Оберона?
|
|||
|
||||
| Void |
|
||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 3 Всего: 173 |
В чем проблема придумать простейший язык? Ну хотя бы вариант S-выражений:
Оберон — это язык программирования такой. С вот такой грамматикой. Зачем? Чего не хватает в их книге? Кучи готовых примеров на все случаи жизни? Поищи лекции Серебрякова по построению компиляторов. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
| GreatStream |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
Спасибки, слушай, я вижу ты занимался этой темой, могет у тебя примеры реализованных распознавателей есть: нисходящий без возвратов или с возвратами, реализованный на Delphi или Paskal?
|
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 3 Всего: 173 |
Увы, нет. Околокомпиляторными вопросами занимаюсь по сей день, но для построения синтаксических анализаторов либо пользовался генераторами, либо писал recursive-descent парсеры, но уж никак не на Pascal/Delphi -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| GreatStream |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
Ну не скажи
|
|||
|
||||
| GreatStream |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
Могет есть у кого реализованные распознаватели с возвратами и без?
|
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 1 Всего: 317 |
GreatStream, неужели сложно найти и скурить: http://algolist.manual.ru/download.php?pat...ax/compilat.zip
Там примеры на C, которые просто переделать на паскаль/дельфи. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| GreatStream |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
спасибо
|
|||
|
||||
| GreatStream |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
Могет у кого ешо што интересное есть, тема то ведь интересная
|
|||
|
||||
| GreatStream |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
Ребята, могет у кого еще есть распознаватели какие-нить? Кстати кто-нить знает по какому принципу в распознавателе с возвратом происходит удаление возвратов? А?
Добавлено @ 16:21 В смысле по какому принципу идет преобразование алгоритмов в алгоритмы без возвратов? |
|||
|
||||
| GreatStream |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 3.6.2006 Репутация: нет Всего: нет |
Блин нихто не знает что ли, мне сказали что какой-то чувак рассматривал способы избавления от возвратов!!!
Добавлено @ 16:29 Его фамилия на Г то ли Гринберг то ли как-то так, может кто-нить знает кто он? И где его книжгу мона достать? |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |