Comments 11
спасибо.
А формально это называется нисходящий рекурсивный анализ.
А формально это называется нисходящий рекурсивный анализ.
когда же у же кто-нибудь напишет «компиляцию выражения» на хаскеле?
зависит от того, что считать разбором. выделение слов и знаков препинания — легко :)
но вот если синтаксис и граматику еще при очень большом желании можно формализовать, то семантика сложновата будет — объектов много, сочетаний еще больше, а обработка данных в мозгу вообще не совсем понятна :)
но вот если синтаксис и граматику еще при очень большом желании можно формализовать, то семантика сложновата будет — объектов много, сочетаний еще больше, а обработка данных в мозгу вообще не совсем понятна :)
потомучто надобы оговориться в статье, что разбор выражений рекурсией подходит далеко не для всех грамматик.
а только для контекстно свободных LL(k) грамматик,
одной из которых является приведённая грамматика выражений.
а только для контекстно свободных LL(k) грамматик,
одной из которых является приведённая грамматика выражений.
А вам шашечки, или ехать надо? :)
Человеку, который хочеть понять основы написания парсеров надо дато что-то пощупать. А потом уже читать, что такое LL(k) грамматики. И вовсе не на Хабре — есть же более академические источники.
Человеку, который хочеть понять основы написания парсеров надо дато что-то пощупать. А потом уже читать, что такое LL(k) грамматики. И вовсе не на Хабре — есть же более академические источники.
лично мне — просветления :)
а тем, кому надо тупо ехать, мне кажется, уже давно просто заказали такси гуглом :)
а тем, кому надо тупо ехать, мне кажется, уже давно просто заказали такси гуглом :)
ну тут кому совсем «тупо ехать», просто возьмут готовую библиотеку и не будут заморачиваться с пониманием «как оно там внутри» :)
вообще, в плане объяснений, я предпочитаю рассказывать «на пальцах» и без определений — формализированного текста и так горы написано, зачем его копировать, а вот примеры его применения с объяснениями иногда приходится искать…
оффтопик: а если смотреть на студентов — часто преподавание и контроль в лучших традициях формализма порождает (кроме, конечно, позитивных сторон) некое множество псевдо-отличников, которые знают все определения и могут их правильно компоновать. да вот только объяснить их природу не в силе…
вообще, в плане объяснений, я предпочитаю рассказывать «на пальцах» и без определений — формализированного текста и так горы написано, зачем его копировать, а вот примеры его применения с объяснениями иногда приходится искать…
оффтопик: а если смотреть на студентов — часто преподавание и контроль в лучших традициях формализма порождает (кроме, конечно, позитивных сторон) некое множество псевдо-отличников, которые знают все определения и могут их правильно компоновать. да вот только объяснить их природу не в силе…
ну, при таком подходе имеет смысл не просто показать но и объяснить суть алгоритма.
чуть более подробно, чем «простенький рекурсивный разбор».
вот я далеко не студент, а глядя на пример алгоритма — совершенно не понимаю как его реализовать в функциональном программировании.
(собственно, потому и коммент про хаскель :)
чуть более подробно, чем «простенький рекурсивный разбор».
вот я далеко не студент, а глядя на пример алгоритма — совершенно не понимаю как его реализовать в функциональном программировании.
(собственно, потому и коммент про хаскель :)
Не могли бы вы поделиться ссылками / названиями таких академических источников?
Sign up to leave a comment.
Вычисление значения выражения «на коленке»