Size: a a a

Compiler Development

2020 April 01

ЗП

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

МБ

Михаил Бахтерев in Compiler Development
Вроде, это всё известно. Но, всё равно, спасибо.
источник

AG

Alex Gryzlov in Compiler Development
так я и сказал что связь известная
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
функциональная стрелка = частный случай профунктора
профунктор = обобщение функциональной стрелки
источник

МБ

Михаил Бахтерев in Compiler Development
Зигохистоморфный Препроморфизм
функциональная стрелка = частный случай профунктора
профунктор = обобщение функциональной стрелки
Скорее уж просто произвольных отношений. Функция, как частный случай таких отношений. Но чё-то это реально далеко от компиляторов.

Или есть какие-то техники оптимизаций с профункторами?
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
Михаил Бахтерев
Скорее уж просто произвольных отношений. Функция, как частный случай таких отношений. Но чё-то это реально далеко от компиляторов.

Или есть какие-то техники оптимизаций с профункторами?
ну по сути профунктор дает тебе возможность применять preprocess/postprocess
источник

AG

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

ЗП

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

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
кстати лемму Йонеды можно применить не только для фьюзинга fmap но и dimap
источник

PS

Peter Sovietov in Compiler Development
Alex Gryzlov
звучит как будто у вас там что-то типа стрелок вместо монад
Да, стрелки ближе, но не совсем то. Оригинальная работа по стрелкам хороша тем, что приводит конкретный пример парсера на комбинаторах, который не работает с монадами.

Вообще, стрелки не так уж далеки от компиляторов. Комбинаторный язык Faust, на который я люблю ссылаться, имеет алгебру блочных диаграмм, похожую на формализм стрелок. Но диаграммы в Faust значительно более выразительные и практичные. И с их помощью действительно можно проводить интересные оптимизации. Это видно по компилятору Faust.
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
Peter Sovietov
Да, стрелки ближе, но не совсем то. Оригинальная работа по стрелкам хороша тем, что приводит конкретный пример парсера на комбинаторах, который не работает с монадами.

Вообще, стрелки не так уж далеки от компиляторов. Комбинаторный язык Faust, на который я люблю ссылаться, имеет алгебру блочных диаграмм, похожую на формализм стрелок. Но диаграммы в Faust значительно более выразительные и практичные. И с их помощью действительно можно проводить интересные оптимизации. Это видно по компилятору Faust.
покажи эту работу
источник

ЗП

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

PS

Peter Sovietov in Compiler Development
Вроде бы Faust — не какой-то эзотерический язык. Он вполне используется профессионалами в области звука. И гуглится легко! :)
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
грубиян
источник

PS

Peter Sovietov in Compiler Development
А! Я, кажется, неправильно понял. Речь шла об "оригинальной работе" по стрелкам и парсерам?
источник

ЗП

Зигохистоморфный Препроморфизм in Compiler Development
Peter Sovietov
А! Я, кажется, неправильно понял. Речь шла об "оригинальной работе" по стрелкам и парсерам?
да
источник

PS

Peter Sovietov in Compiler Development
Вот:
Generalising Monads to Arrows
http://www.cse.chalmers.se/~rjmh/Papers/arrows.pdf
источник

E

EgorBo in Compiler Development
единственный день в году, когда можно написать про свой ЯП и не огрести минусов : )
источник

AG

Alex Gryzlov in Compiler Development
Peter Sovietov
Да, стрелки ближе, но не совсем то. Оригинальная работа по стрелкам хороша тем, что приводит конкретный пример парсера на комбинаторах, который не работает с монадами.

Вообще, стрелки не так уж далеки от компиляторов. Комбинаторный язык Faust, на который я люблю ссылаться, имеет алгебру блочных диаграмм, похожую на формализм стрелок. Но диаграммы в Faust значительно более выразительные и практичные. И с их помощью действительно можно проводить интересные оптимизации. Это видно по компилятору Faust.
в общем случае будет какая то моноидальная категория с доп наворотами
источник

AG

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