Size: a a a

2020 November 20

AK

Andrey Kolesnikov in fprog_spb
Kir
Да, с этим ничего не сделать. Как и с тем, что все в конечном итоге работают в ReaderT EnvOfTVars IO
Я пытаюсь понять, считать ли такой дизайн намеренным, или потому что так вышло? :)
источник

K

Kir in fprog_spb
Andrey Kolesnikov
Я пытаюсь понять, считать ли такой дизайн намеренным, или потому что так вышло? :)
https://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf - отправляю к основополагающим документам)
источник

AT

Alexander Tchitchigi... in fprog_spb
Андрей Бауэр как бы пытался что-то с этим сделать в недавней статье Runners in Action...
источник

AT

Alexander Tchitchigi... in fprog_spb
Andrey Kolesnikov
И я в конце концов все равно упрусь в IO, потому что это и есть форточка в рантайм.
Вы конкретно про Haskell спрашиваете или про варианты вообще (в других языках)?
источник

K

Kir in fprog_spb
Alexander Tchitchigin
Андрей Бауэр как бы пытался что-то с этим сделать в недавней статье Runners in Action...
https://arxiv.org/pdf/1910.11629.pdf - не совсем понимаю, зачем это нужно, если есть системы эффектов
источник

AK

Andrey Kolesnikov in fprog_spb
Alexander Tchitchigin
Вы конкретно про Haskell спрашиваете или про варианты вообще (в других языках)?
Вообще, в принципе интересны наработки денотационных семантик для лямбда-исчисления, в которых можно выразить несколько временных линий.
источник

AK

Andrey Kolesnikov in fprog_spb
Kir
https://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf - отправляю к основополагающим документам)
Я не знаю, что в этом документе нового, но там не моделируется ввод, и о потоках событий там тоже ничего нет.
источник

AT

Alexander Tchitchigi... in fprog_spb
Kir
https://arxiv.org/pdf/1910.11629.pdf - не совсем понимаю, зачем это нужно, если есть системы эффектов
Это развитие/модификация алгебраических эффектов (если это та статья — ссылку не смотрел). Бауэра смущало, что в конечном итоге необработаные эффекты всплывают "вникуда" — в IO, по факту. Они смоделировали куда.
источник

AT

Alexander Tchitchigi... in fprog_spb
Andrey Kolesnikov
Вообще, в принципе интересны наработки денотационных семантик для лямбда-исчисления, в которых можно выразить несколько временных линий.
Pi-calculus? 😃
источник

AK

Andrey Kolesnikov in fprog_spb
Kir
https://arxiv.org/pdf/1910.11629.pdf - не совсем понимаю, зачем это нужно, если есть системы эффектов
Это ближе к тому, что я ищу, но денотационная семантика дана множествами, с обещанием возможности проапгрейдится до доменов.
Домены моделируют ровно одну временную линию, а это для меня невостребовано.
источник

K

Kir in fprog_spb
Andrey Kolesnikov
Это ближе к тому, что я ищу, но денотационная семантика дана множествами, с обещанием возможности проапгрейдится до доменов.
Домены моделируют ровно одну временную линию, а это для меня невостребовано.
Applicative?
источник

AK

Andrey Kolesnikov in fprog_spb
Alexander Tchitchigin
Pi-calculus? 😃
Это тоже алгебраическая модель, и ее семантика дана в лучшем случае бисимуляцией.

Вообще, есть ли хоть какие-то попытки описывать семантики с точки зрения непрерывности, а не так, что в доменах случайно топологию нашли, и забыли?
источник

AK

Andrey Kolesnikov in fprog_spb
Kir
Applicative?
Мне неочевидно, как аппликативы применимы к моделированию нескольких временных линий.
Можно чуть подробнее? :)
источник

K

Kir in fprog_spb
Временных линий?

Ну, в них можно ветки параллельно запускать. А моделирование нескольких временных линий - это как?
источник

AK

Andrey Kolesnikov in fprog_spb
Kir
Временных линий?

Ну, в них можно ветки параллельно запускать. А моделирование нескольких временных линий - это как?
Ну вот например, есть у нас процессор, и сетевая карта.

У них свои тактовые генераторы, они работают асинхронно. У них у каждого свое время, отсюда и "временные линии"

Когда сетевая карта готова передать данные процессору, она кладет их в свою память, и вызывает хардварный интеррапт.
Процессор прекращает делать то, что делал, находит зарегистрированный обработчик, и забирает данные из памяти сетевой карты.

а для моей программы все это скрыто либо за select, который, по сути, опрашивает сокет, либо за epoll.

Теперь внимание, вопрос: как скомпилировать лямбда-исчисление, чтобы были задействованы обе временные линии?
Как мне написать код, который бы описывал tcp-протокол не двумя конечными автоматами с обеих сторон, а одним лямбда выражением?
источник

AK

Andrey Kolesnikov in fprog_spb
Точнее даже, не просто бы описывал, а именно работал, не нарушая композиционности.
источник

АГ

Александр Гранин... in fprog_spb
Kir
Да, с этим ничего не сделать. Как и с тем, что все в конечном итоге работают в ReaderT EnvOfTVars IO
Я попрошу! Не все.
источник

YS

Yan Shkurinskiy in fprog_spb
Александр Гранин
Я попрошу! Не все.
А какие работают на принципиально другом?
источник

АГ

Александр Гранин... in fprog_spb
Да тут вообще непонятно по какому принципу выбран подход, и объявлено, что все так делают
источник

АГ

Александр Гранин... in fprog_spb
И вообще, эти ваши хаскельные монады нормальным разработчикам на нормальных языках не вперились
источник