Size: a a a

Compiler Development

2020 December 16

BD

Berkus Decker in Compiler Development
на номе если лексер только напишешь
источник

M

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

M

MrSmith in Compiler Development
Но не на номе я просто на функциях
источник

M

MrSmith in Compiler Development
Десерт парсер
источник

M

MrSmith in Compiler Development
В таком случае мне просто все неоднозначности надо будет разобрать прямо в коде
источник

FO

FORTRAN ONE LOVE in Compiler Development
Berkus Decker
сишечка непростой язык, контекстно-зависимый и тупой, поэтому стродай
Фортран лучше, да?
источник

M

MrSmith in Compiler Development
С точки зрения парсинга видно лучше
источник

BD

Berkus Decker in Compiler Development
ну да, кардридер подрубил и погнал
источник

YS

Yaroslav Schekin in Compiler Development
MrSmith
Ну если бы генератор завелся то парсер бы был готов уже
А почему бы не содрать где-то готовую грамматику для bison... да и лексер тоже?
источник

M

MrSmith in Compiler Development
Хорошая новость любая грамматика разбираемая LR(K) сущесьвуеь эквивалетна LR(1).
источник

M

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

M

MrSmith in Compiler Development
На вики, работа кнута по этому поводу лежит
источник

D

Danya in Compiler Development
MrSmith
Хорошая новость любая грамматика разбираемая LR(K) сущесьвуеь эквивалетна LR(1).
Мне казалось это общеизвестный факт, кому он интересен
источник

M

MrSmith in Compiler Development
MrSmith
Ну LR то есть, вопрос в другом а си только LR(1) сможет
.
источник

M

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

D

Danya in Compiler Development
А сорри
источник
2020 December 17

h

hazer_hazer in Compiler Development
Столкнулся тут с проблемой и задумался.
Как работают byte-code verifier'ы, если получается нужно код наполовину исполнить? Неизвестно же что будет на топе стака лежать и тд...
А компилятору доверять нельзя, вдруг юзер сам руками напишет байт-код. И тут либо проверять только базовые вещи, что константы, на которые ссылаются имена функций и подобные случаи, правильного типа и так далее, либо по-сути почти исполнять код, и останавливаться на местах, где что-либо откуда берется, но не вызывать, и, кстати придется даже считать, а следовательно брать типы возвращаемые и класть их куда-то. Получается придется какой-то стек с типами составлять или вроде того...
Или я слишком усложняю и это просто делается?
источник

M

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

h

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

h

hazer_hazer in Compiler Development
MrSmith
Мне кажется можно кешами как то обойтись, типа если кеши валиден то и код валиден, но это конечно если мы доверяем компилятору
ну вот и я об этом. magic'ам в слепую доверять... такое себе
источник