Size: a a a

Compiler Development

2020 December 19

KR

K R in Compiler Development
Видимо вам нужно привыкнуть к этой строгости и определениям. Месяца хватит.
источник

AK

Atz Key in Compiler Development
На картинке классическое определение Context-free grammar («КС-грамматика» по-русски) в виде квадрупла (4-тупла). Нетерминалы и правила не эквивалентны. Правило — правило развёртки нетерминала (того, что слева от стрелки, в то, что справа).
источник

M

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

M

MrSmith in Compiler Development
Это rewriting rules над последовательностью
источник

M

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

AK

Atz Key in Compiler Development
Вот, я студентам рекомендую вот этот цикл лекций посмотреть по Теории алгоритмов: https://www.youtube.com/watch?v=TOsMcgIK95k&list=PLbtzT1TYeoMjNOGEiaRmm_vMIwUAidnQz
источник

AK

Atz Key in Compiler Development
Очень подробное и доступное введение.
источник

M

MrSmith in Compiler Development
Я понял, проблема вот в чем то что мы пишем в бизоне правило - определяет кучу анонимных не терминалов и правил продукции на одну строчку
источник

IK

Ivan Kochurkin in Compiler Development
а это кто
терминал это токен
нетерминал это буква которая может раскрываться в другие буквы

слева от стрелки всегда нетерминалы
Это если  КС грамматика. В КЗ слева могут быть комбинации терминалов и не терминалов, но такое не используется на практике.
источник

а

а это кто in Compiler Development
Ivan Kochurkin
Это если  КС грамматика. В КЗ слева могут быть комбинации терминалов и не терминалов, но такое не используется на практике.
а, да
источник

DP

Dmitry Ponyatov in Compiler Development
MrSmith
Как всегда порыться в пейперах и найдутся 3-4 подхода которые просто скорей всего потребуют переписать половину транслятора на монадах или что то типо того
инкрементная компиляция + оптимизации и анализ, работающие в фоне интерактивной системы?
(косясь на Pharo Smalltalk)
источник

AT

Alexander Tchitchigi... in Compiler Development
Бертран Мейер в своё время для Eiffel придумал основную часть компилировать в натив, а изменения поверх — в байт-код чтобы быстрее итерироваться. Правда, за прошедшие годы от этой схемы отказались, как мне кажется.
источник

AT

Alexander Tchitchigi... in Compiler Development
А так был JIT-наизнанку. 😂
источник

E

EgorBo in Compiler Development
а почему отказались? звучит как обычный method body replacement
источник

E

EgorBo in Compiler Development
из джавы и дотнета (моно)
источник

E

EgorBo in Compiler Development
я так понимаю "Instant Run" для андроида так работает, когда изменения кода небольшие и это позволяет мгновенно перезапустить апп
источник

AT

Alexander Tchitchigi... in Compiler Development
EgorBo
а почему отказались? звучит как обычный method body replacement
Не знаю. Мне показалось, что просто забили и оно больше так не делает. 🤷‍♀️
источник

AT

Alexander Tchitchigi... in Compiler Development
Как именно оно внутри работало — method body replacement или что — тоже не разбирался.
источник

DF

Dollar Føølish in Compiler Development
А что байткодом  удобнее реплйсить получается?
источник

AT

Alexander Tchitchigi... in Compiler Development
Dollar Føølish
А что байткодом  удобнее реплйсить получается?
Если ты сначала компилируешь в байт-код, а только потом в натив в любом случае, то получить только байт-код явно быстрее. 😉
источник