Size: a a a

Compiler Development

2020 July 09

AT

Alexander Tchitchigi... in Compiler Development
Виктор Коровин
Если не секрет, какой минимальный пример граммитики, который нельзя "исправить" этим алгоритмом? https://neerc.ifmo.ru/wiki/index.php?title=Устранение_левой_рекурсии
Даже думать не хочу. Я же не с примерами работаю, а с грамматикой TypeScript. При этом, если алгоритм превратит её в ещё большую лапшу, чем есть -- я повешусь. Так что спасибо, но нет. 😊
источник

p

polunin.ai in Compiler Development
Alexander Tchitchigin
Я таких не знаю. 🤷‍♀
Сомневаюсь, что они бы справились с той грамматикой, с которой я работаю. Там реальный трешачок. 😄
От левой рекурсии можно избавиться например так:
A = A|B|C
Превращается в
A = A'|B|C
A' = B|C

Или как-то так, точно не помню🤔
источник

AT

Alexander Tchitchigi... in Compiler Development
polunin.ai
От левой рекурсии можно избавиться например так:
A = A|B|C
Превращается в
A = A'|B|C
A' = B|C

Или как-то так, точно не помню🤔
У меня ещё проще было -- в том месте левая рекурсия вообще ни за чем нужна не была. 😄
источник

f

fldlg2 in Compiler Development
Виктор Коровин
Если не секрет, какой минимальный пример граммитики, который нельзя "исправить" этим алгоритмом? https://neerc.ifmo.ru/wiki/index.php?title=Устранение_левой_рекурсии
"Проблема этого алгоритма в том, что в зависимости от порядка нетерминалов в множестве размер грамматки может получиться экспоненциальным. " и далее по тексту Вашей ссылки.
источник

c

cevek in Compiler Development
Alexander Tchitchigin
Даже думать не хочу. Я же не с примерами работаю, а с грамматикой TypeScript. При этом, если алгоритм превратит её в ещё большую лапшу, чем есть -- я повешусь. Так что спасибо, но нет. 😊
а для чего пишешь грамматику для тс?
источник

AT

Alexander Tchitchigi... in Compiler Development
cevek
а для чего пишешь грамматику для тс?
Для статического поиска дефектов (уязвимостей).
источник

c

cevek in Compiler Development
интересно, опенсорс?
источник

AT

Alexander Tchitchigi... in Compiler Development
cevek
интересно, опенсорс?
Ну щаз! Нет, конечно. 😁
источник

IK

Ivan Kochurkin in Compiler Development
cevek
интересно, опенсорс?
Сама грамматика ts - да.
источник

c

cevek in Compiler Development
меня тоже часто посещает мысль написать такое. но тут самый большой вопрос где доставать кейсы для дефектов
источник

M

MaxGraey in Compiler Development
Alexander Tchitchigin
Для статического поиска дефектов (уязвимостей).
а можно в бета тестеры?)
источник

IK

Ivan Kochurkin in Compiler Development
fldlg2
"Проблема этого алгоритма в том, что в зависимости от порядка нетерминалов в множестве размер грамматки может получиться экспоненциальным. " и далее по тексту Вашей ссылки.
Что-то сомневаюсь, что это реальный кейс в реальных языках.
источник

IK

Ivan Kochurkin in Compiler Development
ANTLR 4 сам трансформирует левую рекурсию. Но получается, что не так оптимально, как если это делать вручную.
источник

K

Kakadu in Compiler Development
Там вроде скальный meerkat умеет прожевывать левую рекурсию
источник

K

Kakadu in Compiler Development
Без изменения грамматики
источник

f

fldlg2 in Compiler Development
Ivan Kochurkin
Что-то сомневаюсь, что это реальный кейс в реальных языках.
Наоборот, в примере — максимально упрощённая иллюстрация непрямой рекурсии. Т.е. типичный случай.
источник

f

fldlg2 in Compiler Development
Гм. Хотя, там в примере и рекурсии-то нет 😉
Рекурсии нетерминалов, т.е. Короче говоря, непросто это — непрямые левые рекурсии убирать.
источник

AT

Alexander Tchitchigi... in Compiler Development
MaxGraey
а можно в бета тестеры?)
Можно связаться с отделом продаж PT и запросить демонстрацию/тестовый прогон. Но конкретно TS -- очень сильно WIP сейчас.
источник

M

MaxGraey in Compiler Development
Alexander Tchitchigin
Можно связаться с отделом продаж PT и запросить демонстрацию/тестовый прогон. Но конкретно TS -- очень сильно WIP сейчас.
PT это Positive Technologies?
источник

λ

λoλdog in Compiler Development
Ростелеком
источник