Мне было любопытно понять, можно ли применить силу Haskell к встроенному миру в реальном времени, а в googling нашли Atom. Я предполагаю, что в сложном случае код может иметь все классические ошибки C - сбои, повреждение памяти и т.д., Которые затем должны быть отслежены до исходного кода Haskell, который вызвали их. Итак, это первая часть вопроса: "Если у вас был опыт работы с Atom, как вы справились с задачей отладки низкоуровневых ошибок в скомпилированном C-коде и исправления их в исходном коде Haskell?"
Я искал еще несколько примеров для Atom, этот пост в блоге упоминает полученный C-код 22KLOC (и, очевидно, никакого кода:), включенный пример - игрушка. Этот и этот содержит немного более практичный код, но это и заканчивается. И причина, по которой я ставлю "значительную" тему, мне больше всего интересно, если вы можете поделиться своим опытом работы с сгенерированным кодом C в диапазоне 300KLOC +.
Поскольку я новичок Haskell, очевидно, что могут быть другие способы, которые я не нашел из-за моих неизвестных неизвестных, так что любые другие указатели на самообразование в этой области были бы весьма признательны - и это вторая часть вопрос - "какие будут другие практические методы (если) для развития в реальном времени в Haskell?". Если многоядерность также находится на картинке, это дополнительный плюс:-)
(Об использовании самого Haskell для этой цели: из того, что я читал в этот пост в блоге, сбор мусора и лень в Haskell делает это скорее недетерминированное планирование, но, может быть, через два года что-то изменилось. Реальный мир программирования Haskell вопрос о SO был самым близким, что я мог найти в этой теме)
Примечание: "в реальном времени" выше будет ближе к "жесткому реальному времени". Мне любопытно, можно ли гарантировать, что время паузы, когда основная задача не выполняется, менее 0,5 мс.