Size: a a a

Compiler Development

2020 December 17

M

MrSmith in Compiler Development
Ну это понятно, сравнение плохое, мысль была в том что лучше пометить как "нестабильно и всегда таким будет" вместо, мы это вообще делать не будем.
Да вообшем не важно
источник

PS

Pavel Samolysov in Compiler Development
Это как в линуксе stable api is nonsence
источник

YS

Yaroslav Schekin in Compiler Development
MrSmith
Короче, как я это понимаю 'грубо' есть ряд проблем которые делают грамматику неоднозначной, эти неоднозначности вызывают проблемы редукции, просто взять и сделать грамматику детерминированной не выйдет, потому что даже такие базовые штуки как if else приоритет операторов ну и т.д. вызывают появление ambigues. Тоесть ну конечно в теории можно изобрести такую подграмматику, но практического толку от этого никакого потому что это будет подобием калькулятора который даже в скобочки не смог, поэтому и требуется велосипед ввиде правил резолва что описанны в ссылке выше. Тоесть я не к тому что совет плохой, я скорей к тому что путь тупиковый. В моем случае есть 2 варианта - плюнуть взять готовый парсер ну или написать патч в lalrpop. Есть еше вариант с экшенами который вроде сами ахо и ко описывают в пейпере
Хмм... я думал, что проблема с неоднозначными грамматиками — не техническая, разве нет?
Т.е. проблема в том, что "пользователи" (программисты на языке, заданном такой грамматикой) сами не будут знать, что значат их программы, грубо говоря. Т.е. эту проблему придётся решать, и ни один метод разбора тут не поможет.
источник

s

suhr in Compiler Development
Yaroslav Schekin
Хмм... я думал, что проблема с неоднозначными грамматиками — не техническая, разве нет?
Т.е. проблема в том, что "пользователи" (программисты на языке, заданном такой грамматикой) сами не будут знать, что значат их программы, грубо говоря. Т.е. эту проблему придётся решать, и ни один метод разбора тут не поможет.
Проблема решается очень просто: достаточно сказать пользователю, что код неоднозначен.
источник

s

suhr in Compiler Development
И пусть он сам сделает однозначно...
источник

YS

Yaroslav Schekin in Compiler Development
suhr
Проблема решается очень просто: достаточно сказать пользователю, что код неоднозначен.
"У меня болит, когда я так делаю — а Вы так не делайте", да? ;)
Вы где-то видели применение такого подхода на практике?
источник

AT

Alexander Tchitchigi... in Compiler Development
Yaroslav Schekin
"У меня болит, когда я так делаю — а Вы так не делайте", да? ;)
Вы где-то видели применение такого подхода на практике?
Конечно, намного лучше, когда компилятор/интерпретатор сам догадывается, что программист имел в виду. 😉
источник

YS

Yaroslav Schekin in Compiler Development
Alexander Tchitchigin
Конечно, намного лучше, когда компилятор/интерпретатор сам догадывается, что программист имел в виду. 😉
Нет. Намного лучше, когда поведение компилятора/интерпретатора ожидаемо, а грамматика однозначна.
источник

s

suhr in Compiler Development
Yaroslav Schekin
Нет. Намного лучше, когда поведение компилятора/интерпретатора ожидаемо, а грамматика однозначна.
В свифте решили иначе. Он ругается, когда бинарные операции несравнимы.
источник

s

suhr in Compiler Development
И правильно делает.
источник

YS

Yaroslav Schekin in Compiler Development
suhr
В свифте решили иначе. Он ругается, когда бинарные операции несравнимы.
Я не знаю, о чём речь. И это сделано именно с использованием неоднозначной грамматики?
источник

s

suhr in Compiler Development
Отсутствие линейного порядка бинарных операций эквивалентно неоднозначной грамматике. И, соответственно, ошибка о том, что операции несравнимы, это ошибка про неоднозначность исходного кода.
источник

s

suhr in Compiler Development
источник

M

MrSmith in Compiler Development
Может кто нибудь посмотреть на марпу?
источник

M

MrSmith in Compiler Development
Автор преподносит знания о локации в правиле, возможные направления (не уверен, но думаю и доступ к графу правил) как нечто вау
источник

M

MrSmith in Compiler Development
источник

M

MrSmith in Compiler Development
Вроде как он 10 лет это пилит
источник

Miss Очепятка... in Compiler Development
MrSmith
Жаль его нельзя никак спроектировать как фреймверк какой или базу данных что бы можно было потом под другие языки использовать
Можно, пишите генератор парсеров. Просто у вас паника из-за дедлайна. Вместо того чтобы кодить Вы сейчас изучаете теорию и в бессознательном состояние ищите спасительную волшебную палочку. Но её нету. И чем дольше Вы ищите тем меньше у вас времени.
источник

M

MrSmith in Compiler Development
источник

M

MrSmith in Compiler Development
Не вникая пиши?
источник