Size: a a a

Compiler Development

2020 April 19

AT

Alexander Tchitchigin in Compiler Development
Чисто для справки: Ruby/Groovy/Kotlin-style билдеры попадают в категорию цепочек методов ООП?
источник

PS

Peter Sovietov in Compiler Development
ruv
Отражение (рефлексия, reflection) куда встанет в списке?  или, оно не важно?
Недавно я вспоминал тот же модуль ast в Питоне — вещь хорошая, но сама по себе недостаточная.  Это как в Форте — все можно расширить, но сделать это придется руками :)
источник

AT

Alexander Tchitchigin in Compiler Development
Peter Sovietov
Недавно я вспоминал тот же модуль ast в Питоне — вещь хорошая, но сама по себе недостаточная.  Это как в Форте — все можно расширить, но сделать это придется руками :)
Справедливости ради, reflection, в отличие от AST, скорее семантический механизм, чем синтаксический...
источник

PS

Peter Sovietov in Compiler Development
Alexander Tchitchigin
Тогда почему комбинаторы попали в выразительные средства языка вместо ФВП???
Я просто делаю акцент на особенном использовании ФВП. Хорошо, добавлю информацию во избежание :)
источник

PS

Peter Sovietov in Compiler Development
Alexander Tchitchigin
Чисто для справки: Ruby/Groovy/Kotlin-style билдеры попадают в категорию цепочек методов ООП?
Думаю, да. Хотелось бы это назвать каким-то общим термином :)
источник

AG

Alex Gryzlov in Compiler Development
Peter Sovietov
Ну Вы же помните, как было сделано в учебнике Аппеля? А еще можно, все-таки, ввести новый вариант IR, но сделать это изящно, без многословия, то есть как в Nanopass :)
у аппеля подход, который дальше в кок уехал - условные рефайнменты, т.е. доказательства таскаем не в индуктивном виде, а предикатом
источник

r

ruv in Compiler Development
Peter Sovietov
Думаю, да. Хотелось бы это назвать каким-то общим термином :)
В XPath есть arrow operator, который работает для функций, передавая первый аргумент неявно.

Вложенный вызов
tokenize((normalize-unicode(upper-case($string))),"\s+")


Можно записать в виде
$string => upper-case() => normalize-unicode() => tokenize("\s+")
источник

AG

Alex Gryzlov in Compiler Development
оно чем-то удобно, но по факту это просто следствие из ограничений системы типов :)
источник

AG

Alex Gryzlov in Compiler Development
Peter Sovietov
Ну вот. А ведь я уже не первый год в этом чате пишу про Nanopass! Важное замечание — далеко не все полезное для практики компиляторописания выводится непосредственно из лямбда-исчисления или, скажем, теории категорий ;)
https://github.com/nanopass/nanopass-framework-scheme/blob/master/doc/user-guide.pdf
макросы в общем, понятно
источник

AG

Alex Gryzlov in Compiler Development
Peter Sovietov
Ну вот. А ведь я уже не первый год в этом чате пишу про Nanopass! Важное замечание — далеко не все полезное для практики компиляторописания выводится непосредственно из лямбда-исчисления или, скажем, теории категорий ;)
https://github.com/nanopass/nanopass-framework-scheme/blob/master/doc/user-guide.pdf
моя текущая гипотеза что практически вся основная база для компиляторов выводится из теории доказательств и теории моделей :)
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
Alex Gryzlov
моя текущая гипотеза что практически вся основная база для компиляторов выводится из теории доказательств и теории моделей :)
как?
источник

AG

Alex Gryzlov in Compiler Development
синтаксическими и семантическими преобразованиями формальных систем, соответствующих IR :)
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
Alex Gryzlov
синтаксическими и семантическими преобразованиями формальных систем, соответствующих IR :)
а есть про это где-то?
источник

AG

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

AG

Alex Gryzlov in Compiler Development
в едином виде думаю нигде нет, потому что это моя гипотеза
источник

AG

Alex Gryzlov in Compiler Development
парсинг тоже можно денсем-техниками организовывать, см https://www.cl.cam.ac.uk/~nk480/parsing.pdf
источник

PS

Peter Sovietov in Compiler Development
Alex Gryzlov
макросы в общем, понятно
Эх... ;)
источник

AG

Alex Gryzlov in Compiler Development
скажете я неправ? :)
источник

PS

Peter Sovietov in Compiler Development
Alex Gryzlov
скажете я неправ? :)
В каком-то смысле это действительно отличная замена заурядным макросам из того же лиспа. Но с точки зрения компиляторщика это очень удобный метаязык. И, кстати говоря, корректность там обеспечивается на уровне спецификаций.
источник

PS

Peter Sovietov in Compiler Development
Я просто и так уже пишу здесь многословно — мне кажется, в документе вполне подробно описаны все уникальные черты Nanopass.
источник