Поиск:

Ответ в темуСоздание новой темы Создание опроса
> LL(1)-грамматики, Преобразование грамматики к LL(1)! 
:(
    Опции темы
GreatStream
Дата 3.6.2006, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Помогите плиззз с примерами LL(1)-грамматик, это могут быть какие угодно примеры: Грамматика,задающая вещественные числа с фиксированной точкой со знаком, грамматика задающая натуральные числа со знаком и т.д, главное, чтобы в форме LL(1)-грамматики или научите плиизззз как преобразовать грамматику и привести ее к LL(1) виду, формализованных алгоритмов приведения произвольной грамматики нет, но как-то ведь их приводят к LL(1)-виду. smile   
PM MAIL   Вверх
Void
Дата 3.6.2006, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 3
Всего: 173



Пример LL(1) грамматики: грамматика арифметических выражений.
Цитата
expression ::= expression '+' term | expression '-' term | term
term ::= term '*' factor | term '/' factor | factor
factor ::= '(' expression ')' | number

Цитата(GreatStream @  4.6.2006,  00:06 Найти цитируемый пост)
формализованных алгоритмов приведения произвольной грамматики нет

И быть не может, потому что есть грамматики, не сводящиеся к LL(1). Для приведения к LL(1)-виду может понадобится устранение леворекурсивных правил и левая факторизация.


По всем вопросам рекомендуется курить «Дракона» Ахо, Ульмана и Сети. Можно и двухтомник Ахо, Ульмана «Теория синтаксического анализа, перевода и компиляции». 


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
GreatStream
Дата 4.6.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Цитата

expression ::= expression '+' term | expression '-' term | term
term ::= term '*' factor | term '/' factor | factor
factor ::= '(' expression ')' | number

Прости, может я чего-то не понимаю, но это не есть LL(1)-грамматика, так как в ней присутствует левая рекурсия, к тому же пример с арифметическими выражениями у меня уже есть, а надо что-нить такое, ну например: грамматика задающая вещественные числа со знаком и фиксированной точкой. Если есть возможность где-нить посмотреть или видел где-нить дай знать плизз, очень надо. А Ахо и Ульмана я смотрел, там по LL(1)-грамматикам тоже в качестве примера только гр-ка арифметических выражений, у Молчанова та же херь smile  smile  
PM MAIL   Вверх
Void
Дата 4.6.2006, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 3
Всего: 173



Цитата(GreatStream @  4.6.2006,  14:28 Найти цитируемый пост)
грамматика задающая вещественные числа со знаком и фиксированной точкой.

Это будет автоматная грамматика. Т.е. она, конечно, разбирается LL(1)-парсерами, но, думаю, не совсем то, что нужно.
Цитата(GreatStream @  4.6.2006,  14:28 Найти цитируемый пост)
но это не есть LL(1)-грамматика, так как в ней присутствует левая рекурсия

Устранимая.
Цитата
expression ::= term more_terms
more_terms ::= '+' term more_terms | '-' term more_terms | ε
term ::= factor more_factors
more_factors ::= '*' more_factors | '*' more_factors | ε
factor ::= '(' expression ')' | number

Цитата(GreatStream @  4.6.2006,  14:28 Найти цитируемый пост)
А Ахо и Ульмана я смотрел, там по 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
PM MAIL WWW GTalk   Вверх
GreatStream
Дата 4.6.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Дык видишь есть уже про арифметические операции, надо что-то другое. А у тебя могет есть какая-нить литература в электронном виде или могет знаешь полезные линки. Я пытался найти что-то кроме Ахо, Ульмана, попадаю на сайты непонятного происхождения, на которых контент непонятно от куда взят, видел просто ссылки на Вирта, но так и не нашел его в сети, что в еблиотеку что-ли прийдется ползти? И что за грамматика Оберона? 
PM MAIL   Вверх
Void
Дата 4.6.2006, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 3
Всего: 173



Цитата(GreatStream @  4.6.2006,  18:53 Найти цитируемый пост)
Дык видишь есть уже про арифметические операции, надо что-то другое.

В чем проблема придумать простейший язык? Ну хотя бы вариант S-выражений:
Цитата
s-expression ::= '(' atom-list ')'
atom-list ::= atom more_atoms
more_atoms ::= atom more_atoms | ε
atom ::= s-expression | identifier

Цитата(GreatStream @  4.6.2006,  18:53 Найти цитируемый пост)
И что за грамматика Оберона?  

Оберон — это язык программирования такой. С вот такой грамматикой.
Цитата(GreatStream @  4.6.2006,  18:53 Найти цитируемый пост)
Я пытался найти что-то кроме Ахо, Ульмана

Зачем? Чего не хватает в их книге? Кучи готовых примеров на все случаи жизни? smile
Поищи лекции Серебрякова по построению компиляторов. 


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
GreatStream
Дата 4.6.2006, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Спасибки, слушай, я вижу ты занимался этой темой, могет у тебя примеры реализованных распознавателей есть: нисходящий без возвратов или с возвратами, реализованный на Delphi или Paskal? smile  Не а вдруг? Был бы признателен! Лекции Серебрякова я поищу обязательно. Thanks!  smile  
PM MAIL   Вверх
Void
Дата 4.6.2006, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 3
Всего: 173



Цитата(GreatStream @  4.6.2006,  21:43 Найти цитируемый пост)
могет у тебя примеры реализованных распознавателей есть

Увы, нет. Околокомпиляторными вопросами занимаюсь по сей день, но для построения синтаксических анализаторов либо пользовался генераторами, либо писал recursive-descent парсеры, но уж никак не на Pascal/Delphi smile А примеров реализации алгоритмов в сети выше крыши. 


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
GreatStream
Дата 5.6.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Ну не скажи smile  
PM MAIL   Вверх
GreatStream
Дата 6.6.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Могет есть у кого реализованные распознаватели с возвратами и без? 
PM MAIL   Вверх
Sardar
Дата 6.6.2006, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 1
Всего: 317



GreatStream, неужели сложно найти и скурить: http://algolist.manual.ru/download.php?pat...ax/compilat.zip
Там примеры на C, которые просто переделать на паскаль/дельфи. 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
GreatStream
Дата 6.6.2006, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



спасибо smile  
PM MAIL   Вверх
GreatStream
Дата 7.6.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Могет у кого ешо што интересное есть, тема то ведь интересная  smile  
PM MAIL   Вверх
GreatStream
Дата 15.6.2006, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Ребята, могет у кого еще есть распознаватели какие-нить? Кстати кто-нить знает по какому принципу в распознавателе с возвратом происходит удаление возвратов? А?

Добавлено @ 16:21 
В смысле по какому принципу идет преобразование алгоритмов в алгоритмы без возвратов? 
PM MAIL   Вверх
GreatStream
Дата 19.6.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.6.2006

Репутация: нет
Всего: нет



Блин нихто не знает что ли, мне сказали что какой-то чувак рассматривал способы избавления от возвратов!!!

Добавлено @ 16:29 
Его фамилия на Г то ли Гринберг то ли как-то так, может кто-нить знает кто он? И где его книжгу мона достать? 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0562 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.