Size: a a a

Compiler Development

2020 March 16

К

Константин in Compiler Development
Peter Sovietov
Что-то уж очень притянуто за уши. Согласитесь, мало смысла компиляторщику рассуждать о формальных методах, если он не понимает, как их применить в своей области.
А чем формально записанный синтаксис - это не формальный метод? Или Вы только о доказательствах?
источник

AT

Anton Trunov in Compiler Development
MaxGraey
Инетерестно кстати кто какрешает парадоксы теории множеств в формальных методах
используют теории множеств без парадоксов)
источник

К

Константин in Compiler Development
Михаил Бахтерев
Лично мой вопрос об архитектуре компилятора. Можно делать так, чтобы теория типов была опциональной, допустим так, как сделано с LaTTe в Clojure. А можно её enforce-ить в языке. Что  лучше. Не могу решить без внешних мнений.
Опционально, разумеется
источник

EM

Evgenii Moiseenko in Compiler Development
MaxGraey
Инетерестно кстати кто какрешает парадоксы теории множеств в формальных методах
Вся теория типов выросла из попыток решить парадокс Расселла :)
источник

PS

Peter Sovietov in Compiler Development
Константин
А чем формально записанный синтаксис - это не формальный метод? Или Вы только о доказательствах?
Вот это уже конкретика. Да, БНФ  — это самая настоящая формальная спецификация. В ее коде, безусловно, можно совершить ошибки, она может быть исполняемой, можно доказать корректность трансляции из БНФ в целевой код.
источник

M

MaxGraey in Compiler Development
Anton Trunov
используют теории множеств без парадоксов)
Ну этосильно зависит от нотации, вот та же Z-нотация подобрана таким образом, что бы избегать, да
источник

К

Константин in Compiler Development
Михаил Бахтерев
Лично мой вопрос об архитектуре компилятора. Можно делать так, чтобы теория типов была опциональной, допустим так, как сделано с LaTTe в Clojure. А можно её enforce-ить в языке. Что  лучше. Не могу решить без внешних мнений.
нужна возможность для плавного перехода. И что за компилятор?
источник

AT

Anton Trunov in Compiler Development
MaxGraey
Ну этосильно зависит от нотации, вот та же Z-нотация подобрана таким образом, что бы избегать, да
я имею в виду, никто не использует наивную теорию множеств для пруверов
источник

К

Константин in Compiler Development
Peter Sovietov
Вот это уже конкретика. Да, БНФ  — это самая настоящая формальная спецификация. В ее коде, безусловно, можно совершить ошибки, она может быть исполняемой, можно доказать корректность трансляции из БНФ в целевой код.
И сколько преимуществ даёт для всех - для разработчиков языка, разработчиков компилятора, пользователя языка
источник

МБ

Михаил Бахтерев in Compiler Development
Peter Sovietov
Вот это уже конкретика. Да, БНФ  — это самая настоящая формальная спецификация. В ее коде, безусловно, можно совершить ошибки, она может быть исполняемой, можно доказать корректность трансляции из БНФ в целевой код.
Имеются в виду формальные доказательства? А есть примеры?
источник

МБ

Михаил Бахтерев in Compiler Development
Ну, кроме Compcert, конечно
источник

К

Константин in Compiler Development
А в нём, как раз этого не было
источник

К

Константин in Compiler Development
там генерация
источник

PS

Peter Sovietov in Compiler Development
Anton Trunov
я имею в виду, никто не использует наивную теорию множеств для пруверов
С точки зрения практика мы просто кванторы переводим в режим compile-time, соответственно речь уже идет о конечных множествах :)
источник

AT

Anton Trunov in Compiler Development
MaxGraey
Ну этосильно зависит от нотации, вот та же Z-нотация подобрана таким образом, что бы избегать, да
вообще в этой области скорее проблема не в парадоксах, а в том, что некоторые формальные системы не дают возможности эффективно моделировать, т.к. сильно размер артефактов растет
источник

PS

Peter Sovietov in Compiler Development
Константин
И сколько преимуществ даёт для всех - для разработчиков языка, разработчиков компилятора, пользователя языка
Вот. А еще есть язык спецификаций для статической семантики, для динамической семантики, для трансформаций программ... А мы все с subtract возимся! :)
источник

AT

Alexander Tchitchigin in Compiler Development
Михаил Бахтерев
Лично мой вопрос об архитектуре компилятора. Можно делать так, чтобы теория типов была опциональной, допустим так, как сделано с LaTTe в Clojure. А можно её enforce-ить в языке. Что  лучше. Не могу решить без внешних мнений.
POPL 2016: Takikawa, Feltey, Greenman, New, Vitek, and Felleisen
Is sound gradual typing dead?
http://www.ccis.neu.edu/racket/pubs/popl16-tfgnvf.pdf
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Tchitchigin
POPL 2016: Takikawa, Feltey, Greenman, New, Vitek, and Felleisen
Is sound gradual typing dead?
http://www.ccis.neu.edu/racket/pubs/popl16-tfgnvf.pdf
Ага. Я читал.
источник

AT

Alexander Tchitchigin in Compiler Development
Михаил Бахтерев
Ага. Я читал.
Выводы довольно печальны, как по мне. 😞
источник

МБ

Михаил Бахтерев in Compiler Development
Alexander Tchitchigin
Выводы довольно печальны, как по мне. 😞
Ну, да... Ужа с ежом плохо получается скрещивать. Typed Racket вот довольно... Ну. Костыльный местами. Но я себе мыслю нечто типа такого. Есть базовый динамический язык, и мы не делаем его типизированным, но в некотором DSL можем доказывать свойства отдельных функций.
источник