Dmitry
@s_ivanov боюсь, что код нам надо писать на PROMELA, а хаскель из него генерировать. ну либо писать его на ограниченном DSL и из него генерировать PROMELA и хаскель, ну или уж Си. чего уж там.
Dmitry
примеры я посмотрел...
Dmitry
что-то профита вижу мало. сейчас другие скину
Dmitry
1) тупо и просто: https://github.com/voidlizard/emufat/blob/master/src/CWriter.hs
Dmitry
тупо и просто два https://github.com/voidlizard/hopc/blob/master/src/Compilers/Hopc/Backend/TinyC/CWriter.hs
Alexander
@voidlizard генерация префиксного дерева ещё используется у вас?
Dmitry
да
Dmitry
вот как раз примеры из неё ищу
Dmitry
ты там Leijen по моему использовал
Alexander
угу
Alexander
какой-то из pretty-printer-ов
Alexander
language-c какой-то слишком замученный для этого кейса был и без документации почти
Dmitry
3) тоже не очень сложно: https://github.com/voidlizard/hctrie/blob/master/Language/C/Generate/Trie.hs
Dmitry
в общем-то, не очень ясно, зачем там что-то специальное, что бы си генерить
Alexander
ну well-formed и все такое
Alexander
если там сложный вложенный код, то смысл может быть
Dmitry
leijen это как раз решает
Dmitry
блоки, скобки
Dmitry
точки с запятой в конце блоков. но это и без него решается
Alexander
про promela я подозреваю, если писать через какую-нить free структуру то проще из haskell генерить промелу
Alexander
у нас кстати часть алгоритмов на промеле было моделировано
Alexander
даже баги находились
Dmitry
я могу рассказать, как например для Сухого доказывают сишные модули при помощи промелы
Alexander
но промела это ад какой-то, в is parallel programming hard and what we can do about it был пример мьютексов
Dmitry
как раз в ЦПИ сидели люди, которые на кафедре параллельно этим занимались, код для Сухого писали и доказывали
Alexander
прикольно
Dmitry
корчое рассказываю
Dmitry
1) берешь студентов последних курсов и аспирантов
Dmitry
2) платишь им небольшие деньги
Dmitry
3) заставляешь брать сишный код и писать для него модель на промеле
Dmitry
4) профит
Alexander
модельки там это ужас же
Alexander
нужно или сильно моделировать, или убьёшься все эти эффекты в модель тащить
Dmitry
студенты и аспиранты никуда не денутся, опять же им деньги нужны
Alexander
это да
Dmitry
особенно, если ты же их научный руководитель. и если они свалят с проекта, то защищаться будут потом всю жизнь
Alexander
жестоко
Alexander
но все же promela это исключительно на труде рабов, писать на ней в трезвом рассудке вроде мало кто захочет
Alexander
ещё и кластер собирать с террабайтами памяти
Alexander
=)
Dmitry
ну я понаслушался рассказов и даже смотреть не стал
Dmitry
крутой проект делали авторы Mirage OS
Dmitry
они сделали dsl для описания протоколов - как парсеров, так и FSM-ов
Dmitry
и для FSM-ов у них генерилась спека в PROMELA
Dmitry
почему они на это забили и все стеки напедалили прямо на raw окамле в итоге я понять не могу
Dmitry
было круто, а стало обычно. хотя реализация SSL/SSH на окамле все равно доставляет
Alexander
угу, это действительно круто
Alexander
у нас была штука со стейтмашинками, я хотел генерить промелу но так времени и не было
Vasiliy
а вот такую тему видали? https://github.com/seL4/l4v
Vasiliy
какая-то эпичная хрень воще
Dmitry
видали, да.
Vasiliy
я пытался что-то понять, но тщетно
Vasiliy
впрочем, я дальше доказательства законов функтора не заходил толком
Alexander
у них haskell доказательства ещё поддерживаются, или целиком на isabelle?
Alexander
ну у них тоже подход, пишем код - доказываем - конвертим (руками?) в си
Max
почему они на это забили и все стеки напедалили прямо на raw окамле в итоге я понять не могу
Пришел менеджер и сказал "Нефик играться, надо показать рабочее".
Dmitry
какой менеджер в академии?
Dmitry
это университетский проект
Dmitry
но хотя менеджер который принудил всех писать на окамле вместо промелы это персонаж, достойный отдельного
Max
Ну, научрук
Max
Вот эва.
Max
В целом метаописание протоколов вещь правильная. Но если глянуть в код стечков - там стока подпорок...
Dmitry
да ты вообще живые такие проекты видел?
Max
Какие? С метаописанием?
Max
Суриката.
Max
Ну и asn1 еще не подох.
Max
И ldap по нему генерится вроде как.
Max
Но да, мало.
Max
Ибо всегда есть нюансики.
Vladislav
верно вообщет
Vladislav
просто фб обычно не хайрит на конкретную позицию
Vladislav
и не факт что есть открытые позиции в этих командах прямо сейчас
Dmitry
@mkrentovskiy суриката это ж просто сигнатуры выделяет? что-то типа регекспы на стероидах?
Vasiliy
вот небольшое подтверждение наличия сабжа в фейсбуке http://simonmar.github.io/posts/2016-12-08-Haskell-in-the-datacentre.html
Vasiliy
и вот ещё https://code.facebook.com/posts/745068642270222/fighting-spam-with-haskell/
Dmitry
раскрываю, как сделать хаскел-в-почти-любой-компании: приходишь в компанию - в какой-то момент делаешь что-то на хаскелле - теперь в этой компании - хаскел в продакшоне (111)
Dmitry
в дойчебанке, например, был SML в продакшоне (111)
Dmitry
таким же ровно образом появился, как я только что рассказал. я его лично сам на перл переписывал, потому что sml-ный код надо было собирать по мануалу в шесть страниц A4
Alexander
это нужно железные яйца иметь и достаточно высоко быть
Dmitry
лучше бы я его переписал на хаскелл, но я тогда (1) не знал таких слов (2) думаю, что ghc в той версии, которая была в том году, был немногим лучше sml