Size: a a a

Compiler Development

2020 March 16

МБ

Михаил Бахтерев in Compiler Development
Так LaTTe идеологически сделан.
источник

AT

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

МБ

Михаил Бахтерев in Compiler Development
Alexander Tchitchigin
А на чём тогда основывать доказательства свойств функций?
На вот этом самом LaTTe, он извлекает функции свои в Plain Clojure.
источник

AT

Alexander Tchitchigin in Compiler Development
Михаил Бахтерев
На вот этом самом LaTTe, он извлекает функции свои в Plain Clojure.
Т.е. получается чистый типизированный DSL, который экстрактится в нетипизированный язык? Типа как Gallina? 😉
источник

PS

Peter Sovietov in Compiler Development
Михаил Бахтерев
Имеются в виду формальные доказательства? А есть примеры?
А что здесь особенного? Вот пример с использованием любимого многими тут Coq :)
A Verified LL(1) Parser Generator
https://drops.dagstuhl.de/opus/volltexte/2019/11079/pdf/LIPIcs-ITP-2019-24.pdf
источник

МБ

Михаил Бахтерев in Compiler Development
Peter Sovietov
А что здесь особенного? Вот пример с использованием любимого многими тут Coq :)
A Verified LL(1) Parser Generator
https://drops.dagstuhl.de/opus/volltexte/2019/11079/pdf/LIPIcs-ITP-2019-24.pdf
Спасибо
источник

МБ

Михаил Бахтерев in Compiler Development
8000 строк кода для LL(1)...
источник

AT

Anton Trunov in Compiler Development
На тему парсинга есть еще Validating LR(1) Parsers: http://gallium.inria.fr/~fpottier/publis/jourdan-leroy-pottier-validating-parsers.pdf
источник

PS

Peter Sovietov in Compiler Development
Михаил Бахтерев
8000 строк кода для LL(1)...
Но это не отменяет того факта, что формальные спецификации в построении компиляторов используются достаточно широко. Возможность писать код прямо на высокоуровневом языке спецификации, на мой взгляд, гораздо ценнее, чем возня с зависимыми типами и проч. А для доказательств, как уже говорилось выше, у компиляторщиков есть те же  SMT-решатели с Datalog.
источник

PS

Peter Sovietov in Compiler Development
Anton Trunov
На тему парсинга есть еще Validating LR(1) Parsers: http://gallium.inria.fr/~fpottier/publis/jourdan-leroy-pottier-validating-parsers.pdf
В related work эта статья есть :)
источник

AT

Anton Trunov in Compiler Development
стоило ожидать)
источник

RS

Rifat S in Compiler Development
По поводу длины доказательства Н.Н.Непейвода утверждает, что доказательство должно быть не более чем в три раза длиннее программы: http://900igr.net/up/datas/207437/060.jpg
источник

МБ

Михаил Бахтерев in Compiler Development
А где об этом можно прочитать?
источник

МБ

Михаил Бахтерев in Compiler Development
Это Теорема Оревкова, кажется. Но я её так и не нашёл.
источник

EZ

Evgeniy Zheltonozhskiy🇮🇱 in Compiler Development
Rifat S
По поводу длины доказательства Н.Н.Непейвода утверждает, что доказательство должно быть не более чем в три раза длиннее программы: http://900igr.net/up/datas/207437/060.jpg
Это не то что там написано
источник

RS

Rifat S in Compiler Development
Непейвода Н.Н. Прикладная логика ISBN 5-7615-0490-1
источник

DS

Doge Shibu in Compiler Development
Rifat S
Непейвода Н.Н. Прикладная логика ISBN 5-7615-0490-1
А какова общая идея доказательства этой теоремы?

Звучит любопытно
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Rifat S
Непейвода Н.Н. Прикладная логика ISBN 5-7615-0490-1
Так давайте ему напишем, он отвечает на письма
источник

МБ

Михаил Бахтерев in Compiler Development
Готов подписать письмо :)
источник

A

Andrey in Compiler Development
Evgeniy Zheltonozhskiy🇮🇱
Это не то что там написано
+
источник