À l'aide de Haskell importante pour les systèmes temps-réel: comment (si?)?

J'ai été curieux de comprendre si il est possible d'appliquer le pouvoir de Haskell et intégrés en temps réel du monde, et dans googler ont trouvé l' Atom paquet. Je suppose que dans le cas complexe, le code pourrait avoir tous les classiques C bugs - accidents, des corruptions de mémoire, etc, qui devraient ensuite être tracée à l'origine du code Haskell qui
sont à l'origine. Donc, ce est la première partie de la question: "Si vous avez eu l'expérience avec l'Atome, comment avez-vous face à la tâche de débogage, le faible niveau des bugs dans compilé en code C et en les fixant en Haskell code d'origine ?"

J'ai cherché quelques exemples de plus pour Atom, ce blog mentionne le code C résultant 22KLOC (et évidemment, pas de code:), le exemple est un jouet. Cette et cette références ont un peu plus de code, mais c'est là que cela se termine. Et la raison, j'ai mis "considérable" dans le sujet, je suis plus intéressé de savoir si vous pourriez partager vos expériences de travail avec le code C généré dans la gamme de 300KLOC+.

Que je suis un Haskell débutant, évidemment, il peut y avoir d'autres façons que je n'ai pas trouver la cause de mon inconnues inconnues, de sorte que toute les autres pointeurs pour l'auto-éducation dans ce domaine serait grandement apprécié - et c'est la deuxième partie de la question "quels seraient certains d'autres pratiques (si) de le faire en temps réel de développement en Haskell?". Si le multicœur est aussi dans l'image, c'est un petit plus 🙂

(À propos de l'utilisation de Haskell lui-même à cette fin: d'après ce que j'ai lu dans ce blog, la collecte des ordures et de la paresse en Haskell rend plutôt programmation non déterministe-sage, mais peut-être que dans deux ans, quelque chose a changé. Real world Haskell programmation question était DONC le plus proche de ce que j'ai pu trouver à ce sujet)

Remarque: "en temps réel" ci-dessus est plus proche serait "dur en temps réel" - je suis curieux de savoir si il est possible de s'assurer que le temps de pause lorsque la tâche principale n'est pas en cours d'exécution est moins de 0,5 ms.

OriginalL'auteur Andrew Y | 2009-08-12