Size: a a a

Compiler Development

2021 January 25

D

Danya in Compiler Development
James Tevision
А есть где-то грамматика С
Чтобы почитать, и попытаться осознать
В стандарте
источник

AG

Alexander Galagutski... in Compiler Development
James Tevision
А есть где-то грамматика С
Чтобы почитать, и попытаться осознать
Если тебе бегло разобраться открой antlr на гитхабе там примеры почти всех грамматик
источник

AG

Alexander Galagutski... in Compiler Development
James Tevision
А есть где-то грамматика С
Чтобы почитать, и попытаться осознать
источник

АП

Антон Пилипчук... in Compiler Development
Есть какие то формы описания грамматик, в которых можно использовать регулярные выражения?
источник

K

Kir in Compiler Development
Антон Пилипчук
Есть какие то формы описания грамматик, в которых можно использовать регулярные выражения?
Лексемы ими можно описывать, ну, кроме вложенных комментариев
источник

БГ

Бензофуран Гетероцик... in Compiler Development
Антон Пилипчук
Есть какие то формы описания грамматик, в которых можно использовать регулярные выражения?
Вроде бы в PEG что-то с регулярками было
источник

K

Kir in Compiler Development
Антон Пилипчук
Есть какие то формы описания грамматик, в которых можно использовать регулярные выражения?
источник

АП

Антон Пилипчук... in Compiler Development
Kir
Лексемы ими можно описывать, ну, кроме вложенных комментариев
вложенные комментарии также можно, только далеко не все диалекты регулярных выражений поддерживают рекурсивные шаблоны
источник

K

Kir in Compiler Development
Антон Пилипчук
вложенные комментарии также можно, только далеко не все диалекты регулярных выражений поддерживают рекурсивные шаблоны
Регулярная грамматика не может включать рекурсивные выражения по определению. В большинстве лексеров используются регулярки без рекурсии.
источник

АП

Антон Пилипчук... in Compiler Development
Kir
Регулярная грамматика не может включать рекурсивные выражения по определению. В большинстве лексеров используются регулярки без рекурсии.
согласен, но я говорил только о регулярных выражениях
источник

АП

Антон Пилипчук... in Compiler Development
правда, все реализации рекурсивных регулярных выражений, которые я использовал, падают на довольно маленькой глубине вложений
источник

YS

Yaroslav Schekin in Compiler Development
Антон Пилипчук
согласен, но я говорил только о регулярных выражениях
Когда что-то, поддерживающее нерегулярные конструкции, называют "регулярными выражениями" —  это неправильное использование термина, вот и всё.
источник

АП

Антон Пилипчук... in Compiler Development
Yaroslav Schekin
Когда что-то, поддерживающее нерегулярные конструкции, называют "регулярными выражениями" —  это неправильное использование термина, вот и всё.
видимо поэтому мало какие реализации поддерживают рекурсивные регулярные выражения🤷‍♂
источник

YS

Yaroslav Schekin in Compiler Development
Антон Пилипчук
видимо поэтому мало какие реализации поддерживают рекурсивные регулярные выражения🤷‍♂
То, что реализуют подавляющее большинство regex engines — не регулярные выражения.
Просто со временем возможности / реализации [далеко] отошли от формального определения, а называют их всё по-старому.
источник

AG

Alex Gryzlov in Compiler Development
регулярные выражения с рекурсией это контекстно-независимые выражения
источник

J

JohnByte in Compiler Development
S -> x | x S

тоже рекурсивный язык но регулярный
источник
2021 January 26

J

JohnByte in Compiler Development
Alex Gryzlov
регулярные выражения с рекурсией это контекстно-независимые выражения
С нехвостовой рекурсией если точнее
источник

SS

Sergey Sverdlov in Compiler Development
Хвостовой (правой)
источник

EM

Evgenii Moiseenko in Compiler Development
Всем привет!)
Вопрос по llvm (который дублирует https://stackoverflow.com/questions/28900202/how-to-translate-intrinsics-to-a-legacy-architecture)
У меня есть анализатор llvm кода (не klee), у которого под капотом кастомный интерпретатор биткода. Естественно, этот интерпретатор не поддерживает все возможные интринсики.
Тем не менее, я хочу запустить его на довольно большой кодовой базе, где как раз встречаются различные интринсики. Интепретатор не может их обработать и падает с ошибкой.
Есть ли какой-то стандартный способ попробовать заловерить интринсики в минимально возможное подмножество биткода, чтобы не поддерживать все возможные интринсики в интерпретаторе? (llvm::IntrinsicLowering не помогает).
В Klee, как я понял, ребята борятся с этим тем, что сами ручками пишут пассы, которые ловерят интринсики, но если честно мне не хотелось бы сейчас этим заниматься :)
https://github.com/klee/klee/issues/678
У меня сейчас интерпретатор не может справиться примерно с тем же списком интринсиков, что и в issue в klee.
источник

EM

Evgenii Moiseenko in Compiler Development
Или может есть способ при сборке проекта попросить clang не использовать эти интринсики?
источник