Size: a a a

Compiler Development

2021 February 19

M

MrSmith in Compiler Development
Не, все еше формальная
источник

YS

Yaroslav Schekin in Compiler Development
MrSmith
Не, все еше формальная
Почему? Как она соответствует определению, в смысле?
источник

M

MrSmith in Compiler Development
Или нет сейчас подумаю
источник

M

MrSmith in Compiler Development
Ну если оно семи фи то да но семи фи ли оно
источник

M

MrSmith in Compiler Development
Ладно, не похоже на правду
источник

M

MrSmith in Compiler Development
Пусть нет, но так даже лучше
источник

s

suhr in Compiler Development
Разрешение неоднозначности это всего лишь констрейнты, отсекающие ветки логического вывода.
источник

M

MrSmith in Compiler Development
Всего лишь
источник

s

suhr in Compiler Development
От этого грамматика не перестаёт быть грамматикой.
источник

M

MrSmith in Compiler Development
Отличная ветка умеюшая смотреть уже разобранные данные и составлять таблицы мемоизации
источник

M

MrSmith in Compiler Development
Вот это всего лишь и отделяет нормальные инструменты от научных изысканий
источник

K

Kir in Compiler Development
У меня есть есть подозрение, что С++ и многие другие грамматики на LR(1) вообще никак.

Преимущество LR(1) над там же packrat, который может в наверное почти любые CFG (и даже леворекурсивные, с определёнными хаками) грамматики в том, что в LR(1) конфликты надо разрешать явно, а пакрат/PEG делают это автоматически. И то, что тебя LR заставит разруливать сразу, в пакрате вылезет потом.

В LR(1) "разрешение конфликтов" выглядит так: если в одном и том же верхнем состоянии (наборе продукций) появляется несколько действий на 1 токен, и они отличаются только lookahead'ом (Reduce (A -> a B c . / {e d} & Reduce (A -> a B c . / {f e} при следующем символе e), то мы их мержим (Reduce (A -> a B c . / {e d f}), иначе это конфликт.

Судя по всему, LR(1) является наибольшим формализмом для описания однозначных грамматик. Если у тебя вылез конфликт, то это потому, что информации в грамматике не хватило на однозначное решение.
источник

YS

Yaroslav Schekin in Compiler Development
suhr
От этого грамматика не перестаёт быть грамматикой.
Я, может, не понимаю чего-то... можете показать, как использовать полученное как генеративную грамматику, например?
источник

s

suhr in Compiler Development
Yaroslav Schekin
Я, может, не понимаю чего-то... можете показать, как использовать полученное как генеративную грамматику, например?
источник

M

MrSmith in Compiler Development
Какая разница какой возьмем алгоритм, суть одна нам понадобяться экшены бегать в уже разобранное
источник

YS

Yaroslav Schekin in Compiler Development
MrSmith
Вот это всего лишь и отделяет нормальные инструменты от научных изысканий
А мне кажется, что это не "нормальные инструменты", а просто ad-hoc, "выбрасывающий за борт" всю теорию и возможности, которые она предоставляет.
источник

M

MrSmith in Compiler Development
Иначе наш максимум изотерические языки
источник

M

MrSmith in Compiler Development
Yaroslav Schekin
А мне кажется, что это не "нормальные инструменты", а просто ad-hoc, "выбрасывающий за борт" всю теорию и возможности, которые она предоставляет.
А где едет?
источник

M

MrSmith in Compiler Development
Везде рекурсиные спуски
источник

M

MrSmith in Compiler Development
Отличная теория
источник