Size: a a a

Compiler Development

2021 March 24

PS

Peter Sovietov in Compiler Development
Alex Gryzlov
всё придумал Вегнер, Кнут только рядом стоял!
Вот это уже серьезный выпад :)
источник

DK

David Kravets in Compiler Development
Peter Sovietov
А какие значимые работы у Кормена есть по PL/компиляторам?
Я про Алгоритмы
источник

AG

Alex Gryzlov in Compiler Development
Peter Sovietov
Вот это уже серьезный выпад :)
источник

PS

Peter Sovietov in Compiler Development
Да, я эту статью читал неоднократно :)
источник

DK

David Kravets in Compiler Development
Рекурсивный низ. подход ?
источник

AG

Alex Gryzlov in Compiler Development
двухсторонний скорее :)
источник

AG

Alex Gryzlov in Compiler Development
у bidirectional тайпчекеров наверняка тоже ноги откуда-то отсюда растут
источник

к

кана in Compiler Development
раз уж заговирили про bidirectional тайпчекеры.

вот тут правило по выводу типа A, но не ясно по предпосылке (x : A) elem Г, является ли A аргументом

то есть это правило что
> для аргументов (x, A, Г) вывести тип x как A, если x : A есть в контексте
ИЛИ ЖЕ
> для аргументов (x, Г), если в контексте есть какой-то x : A, то вывести тип x как A

https://www.cl.cam.ac.uk/~nk480/bidir-survey.pdf - страница 3
источник

A

Andrey in Compiler Development
кана
раз уж заговирили про bidirectional тайпчекеры.

вот тут правило по выводу типа A, но не ясно по предпосылке (x : A) elem Г, является ли A аргументом

то есть это правило что
> для аргументов (x, A, Г) вывести тип x как A, если x : A есть в контексте
ИЛИ ЖЕ
> для аргументов (x, Г), если в контексте есть какой-то x : A, то вывести тип x как A

https://www.cl.cam.ac.uk/~nk480/bidir-survey.pdf - страница 3
Не является, надо на стрелки смотреть. означает, что выполняется синтез типа, то есть тип - выходное значение, а определить его можно, зная только Γ и x. А вот - это проверка типа, в таком случае тип должен быть известен заранее. То есть A будет аргументом в таком правиле:
(x : A) ∈ Γ
----------- Var⇐
Γ ⊢ x ⇐ A

(Хотя особого смысла в нём нет при наличии Sub⇐)
источник

к

кана in Compiler Development
ну, вот тут A и аргумент, и результат

но тут понятно что он из терма пришел
источник

A

Andrey in Compiler Development
кана
ну, вот тут A и аргумент, и результат

но тут понятно что он из терма пришел
Да. Это всё есть в описании правил. Для →I⇐, например, объясняется, почему тип для лямбды проверяется, а не синтезируется
источник

A

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

A

Andrey in Compiler Development
Если попытаться сделать правило с Γ ⊢ (λx.e) ⇒ A1 → A2, то негде будет взять тип A1, чтобы добавить тип x в контекст для синтеза A2
источник
2021 March 25

AG

Alex Gryzlov in Compiler Development
кана
раз уж заговирили про bidirectional тайпчекеры.

вот тут правило по выводу типа A, но не ясно по предпосылке (x : A) elem Г, является ли A аргументом

то есть это правило что
> для аргументов (x, A, Г) вывести тип x как A, если x : A есть в контексте
ИЛИ ЖЕ
> для аргументов (x, Г), если в контексте есть какой-то x : A, то вывести тип x как A

https://www.cl.cam.ac.uk/~nk480/bidir-survey.pdf - страница 3
нет, тип переменных выводится
источник

AG

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

AG

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

AG

Alex Gryzlov in Compiler Development
поэтому лямбды и аннотируются
источник

AG

Alex Gryzlov in Compiler Development
Andrey
Если попытаться сделать правило с Γ ⊢ (λx.e) ⇒ A1 → A2, то негде будет взять тип A1, чтобы добавить тип x в контекст для синтеза A2
^
источник

ЗП

Зигохистоморфный Пре... in Compiler Development
кана
раз уж заговирили про bidirectional тайпчекеры.

вот тут правило по выводу типа A, но не ясно по предпосылке (x : A) elem Г, является ли A аргументом

то есть это правило что
> для аргументов (x, A, Г) вывести тип x как A, если x : A есть в контексте
ИЛИ ЖЕ
> для аргументов (x, Г), если в контексте есть какой-то x : A, то вывести тип x как A

https://www.cl.cam.ac.uk/~nk480/bidir-survey.pdf - страница 3
похоже для этого языка тоже использовали этот пейпер
https://github.com/zehaochen19/vanilla-lang
источник

M

MrSmith in Compiler Development
https://rms-support-letter.github.io/
Просьба поддержать Столлмана
источник