Size: a a a

Compiler Development

2020 April 23

BD

Berkus Decker in Compiler Development
много TLA но куда именно смотреть?
источник

AG

Alex Gryzlov in Compiler Development
Term и Smallstep
источник

AG

Alex Gryzlov in Compiler Development
там еще парсер, тайпчекер и пачка АМ
источник

BD

Berkus Decker in Compiler Development
источник

BD

Berkus Decker in Compiler Development
ок, спасибо, буду изучать
источник

AG

Alex Gryzlov in Compiler Development
это подстановка, сами интерпретаторы отсюда https://github.com/sequents/code/blob/master/src/Lambda/STLC/Smallstep.idr#L51
источник

AG

Alex Gryzlov in Compiler Development
первый call-by-name, второй call-by-value
источник

AG

Alex Gryzlov in Compiler Development
каждая строчка по сути и есть правило переписи
источник

AG

Alex Gryzlov in Compiler Development
баяны [| foo (f x) (g y) |] это грубо говоря сахар для чего то типа
if f x is Just x' then
 if g y is Just y' then
   Just foo x' y'
 else Nothing
источник

AG

Alex Gryzlov in Compiler Development
это нужно для поиска редексов внутри терма
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Alex Gryzlov
мелкошаговый совсем автоматный, а крупношаговый ближе к денотационной семантике, он более абстрактный, т.е. оставляет технические вещи за кадром отчасти
Я долгое время не понимал разницу. В моей голове сложилась такая интуиция: результат выполнения программы в small step — трейс состояний/событий, а в big step — скажем, число
источник

BD

Berkus Decker in Compiler Development
Alex Gryzlov
заканчивается тогда когда заканчиваются правила :)
про составление правил для оп семантики - вот например у нас есть какой-то general purpose язык, как мы составляем для него опсем правила и где там заканчиваются правила?
источник

AG

Alex Gryzlov in Compiler Development
Igor 🐱 Jirkov
Я долгое время не понимал разницу. В моей голове сложилась такая интуиция: результат выполнения программы в small step — трейс состояний/событий, а в big step — скажем, число
ну да, бигстеп схлопнет всю цепочку редукции до одной реляции
источник

AG

Alex Gryzlov in Compiler Development
Berkus Decker
про составление правил для оп семантики - вот например у нас есть какой-то general purpose язык, как мы составляем для него опсем правила и где там заканчиваются правила?
заканчиваются в смысле "больше нечего применять"
источник

AG

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

AG

Alex Gryzlov in Compiler Development
есть всякие инструменты, упрощающие этот процесс, например https://redex.racket-lang.org/
источник

BD

Berkus Decker in Compiler Development
Alex Gryzlov
заканчиваются в смысле "больше нечего применять"
да, но должны быть какие-то критерии что мы должны получить на выходе правил же, что там получается то?
источник

BD

Berkus Decker in Compiler Development
Alex Gryzlov
есть всякие инструменты, упрощающие этот процесс, например https://redex.racket-lang.org/
о, спасибо, это полезно
источник

AG

Alex Gryzlov in Compiler Development
Berkus Decker
да, но должны быть какие-то критерии что мы должны получить на выходе правил же, что там получается то?
ну получается редуцированный терм
источник

AG

Alex Gryzlov in Compiler Development
было у вас Add (S (S Z)) (S (S Z)), стало S (S (S (S Z)))
источник