Re[9]: Адаптированный алгоритм Эрли - описание расширения
От: mefrill Россия  
Дата: 26.01.06 06:02
Оценка:
Здравствуйте, little_alex, Вы писали:

_>Фактически это то что ты опысывал, только вместо ссылоки на дочернию ситуацию хранится ссылка на дерево вывода им соответсвующее.Это нужно чтобы перечисление поддеревьев для правила было не справа налево(как сейчас после работы алгоритма 1),а слева направо.


Ага, понятно, спасибо. В принципе, это не так принципиально (извини за тавтологию) какой вывод строить, правый или левый. Я во втором алгоритме обхода деревьев просто кладу все узлы деревав в стек, а потом обхожу их слева направо. Занимает время это совсем мало в сравнении с временем всего алгоритма. Вообще, алгоритм обхода гораздо быстрее алгоритма Эрли.
Re[8]: Адаптированный алгоритм Эрли - описание расширения
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.01.06 15:06
Оценка:
Здравствуйте, little_alex, Вы писали:


_>Тут есть один нехороший момент. Пусть есть 10 "локальных неоднозначностей"


Ключевое слово "локальных"! А что я буду делать с 10 отдельными деревьями разбора?
... << RSDN@Home 1.2.0 alpha rev. 631>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Адаптированный алгоритм Эрли - описание расширения
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.01.06 15:06
Оценка:
Здравствуйте, little_alex, Вы писали:

_>Здравствуйте, VladD2, Вы писали:


VD>>mefrill предлагает расширить ситуации двумя полями, чтобы строить дерево в один проход. Вот я и опасаюсь, как бы это не замедлело работу парсера.


_>А без этих полей как потом дерево восстанавливать?


Насколько я понял, тех полей что есть достаточно для построения деревьев отдельным проходом.
... << RSDN@Home 1.2.0 alpha rev. 631>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Адаптированный алгоритм Эрли - описание расширения
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.01.06 15:07
Оценка:
Здравствуйте, little_alex, Вы писали:

_>Каждое дерево из множества анализируется на корректность — ненужные отбрасываются. Это даже проще. Проблема только в их количесве.


И делать 10 анализов? Это тормоза.
... << RSDN@Home 1.2.0 alpha rev. 631>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Адаптированный алгоритм Эрли - описание расширения
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.01.06 15:07
Оценка:
Здравствуйте, mefrill, Вы писали:

M>В присоединенной статье есть алгоритм номер три, в котором показан обход вот такого леса графов. По ходу дела разрешается неоднозначность и на самом деле строится только единственное дерево. Алгоритм этот реализован и работает на порядок (а то и на два) быстрее основного адаптированного алгоритма Эрли. Сама структура построенного адаптированным алгоритмом множества графов, по моему мнению, наиболее естественно отражает работу алгоритма. И обход по дереву не составляет трудностей. Я реализовывал парсер на основе этого алгоритма и скажу, что все довольно удобно. Все же советую прочитать статью до конца.


То есть если будет 10 неоднозначностей, то 10 отедьных деревьев анализировать не прийдется?
... << RSDN@Home 1.2.0 alpha rev. 631>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Адаптированный алгоритм Эрли - описание расширения
От: little_alex  
Дата: 26.01.06 16:11
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>То есть если будет 10 неоднозначностей, то 10 отедьных деревьев анализировать не прийдется?


Больше анализировать придется. m неоднозначностей , k альтернатив в каждой — всего k^m разных деревьев. Вроде так
Re[5]: Адаптированный алгоритм Эрли - описание расширения
От: vdimas Россия  
Дата: 27.01.06 05:44
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Кстати, господа знатоки, ответте на такой вопрос.


VD>Циклы в грамматике языка программирования говорят о ошибке того кто ее составлял, или они могут возникать в виду некоторых других абстаятельств и разрешаться уже на семантическом уровне?


ИМХО, циклы можно получить даже на правильной грамматике, подав не в том порядке правила, например, для восходящего алгоритма. С т.з. языка не имеет значение приоритетность правил, а с т.з. конкретного алгоритма парсера — очень даже.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.