jhc: a highly-compact Haskell compiler; translates to C. - http://repetae.net/compute...
A NetBSD sound driver rewritten in Haskell using jhc. https://github.com/metasep... The repo is a working demo. - 9000
(по ссылке не ходил) а какой в этом смысл? ну вот написал ты код, весь такой на типах, статически проверенный и вообще надежный, а кто будет гарантировать корректность сгенерированого кода? - с бородой на голове
^ В случае строго типизированного языка (хаскель, rust, etc) есть возможность устранить много (вплоть до 100%, если взять серьёзные инструменты) ошибок программирования, а также много (не скажу за 100%) ошибок компилятора, который всё же гораздо компактнее и пишетя один раз, и получить систему с малым числом дефектов. В случае более разгильдяйских языков, вроде C, первый шаг сильно затруднён, вплоть до невозможности. - 9000
C is a high-level assembler, там ничего не гарантируется, сколько тулзов не прикручивай. - голос в темноте
^^да знаю я все это про ваши хаскели, я про то и говорю, ну устранил ты эти ошибки, а дальше что? пришел транслятор в Си, и на генерил кривого кода на сях, в котором ошибок на любой вкус, смысл-то был городить все это? - с бородой на голове
^^так о том и речь - с бородой на голове
Ну пусть вместо C туда прикрутят LLVM или другой промежуточный геренатор кода. "C ничего не гарантирует" — это преувеличение. C обещает undefined behavior в ряде краевых случаев. Эти краевые случаи при генерации кода можно и обходить. C — язык простой, точность трансляции проверить относительно легко, и старательно проверенные компиляторы существуют. Давно вы видели баг в сишном компиляторе? А в средней прикладной программе? - 9000
разговоры про корректность, конечно, очень блаародно, но где продукты? все как подорваные пишут nosql базы, хоть одну на хаскеле написали? звуковой драйвер для bsd офигенно полезная вещь, да - urquan
@urquan: Это всё же пока исследовательский проект, а nosql — модный мейнстрим. И не факт, что хаскель — вообще оптимальный для таких задач язык, а не rust или не http://www.ats-lang.org/ или ещё что-то, позволяющее сочетать строгую и приемлемо верифицируемую семантику с доступом к низкоуровневым вещам. - 9000
так это и означает, что ценность типизации невелика - urquan
Странно что транслируют в Си - в LLVM байткод было бы логичнее. - citrin
^ Как я понимаю, их цель — всякое мелкое железо класса arduino, не знаю, как там с поддержкой трансляции из LLVM. - 9000
^ у меня ощущение, что любителей тихо переводят на Cortex - voldmar
^ и слава богу - рептильный дом