Incorporation de Haskell: compilateurs et compilation de compilateurs

Cet article est une traduction de l'article de Chris Hodapp Embedding Haskell: Compilers, and compiling compilers.Dans cet article, l'auteur explore différentes approches d'utilisation de Haskell pour écrire du code pour les systèmes embarqués. Donnons la parole à l'auteur.



Dans mon dernier message , il a été mentionné que certaines choses nécessitent une meilleure explication parce que j'essaie toujours d'expliquer et de clarifier.



Ce blog concerne l'utilisation de Haskell avec des systèmes embarqués. Qu'est ce que ça veut dire? Nous voyons quelques grandes catégories (qui reflètent les diapositives de la dernière page ainsi que notre page de liens ):



  • Compilation complète: compile le code Haskell pour une affectation en ligne.
  • Compilation limitée: compilation d'un sous-ensemble limité de code Haskell pour une affectation en ligne.
  • Hébergement EDSL et compilateur: Hébergement en Haskell, EDSL et compilateur pour une utilisation intégrée.


Autant que je sache, j'ai proposé ces catégories. Si quelqu'un connaît une classification plus établie, des noms plus appropriés ou des exemples de celui qui en a parlé en premier, veuillez me le faire savoir.



Cela peut ressembler à un groupement arbitraire unilatéral; c'est un peu comme ça. Le point commun est que dans tous les cas, Haskell est utilisé pour exprimer quelque chose (programmes, schémas, spécifications, appelez-le comme vous voulez) dans un but en ligne. Plus à ce sujet plus tard.



J'exclus des choses comme Cryptol et Idris car, étant implémentées dans Haskell et adaptées aux plates-formes intégrées, ce sont d'autres langages eux-mêmes. Je peux arbitrairement abandonner cette distinction à l'avenir si je le souhaite ...



Compilation complète



, , Haskell — Haskell , ( , ). Compiling to Embedded Targets .



, . Haskell . , Haskell .



Ajhc, , JHC, Kiwamu Okabe METASEPI, , — ARM Cortex-M3 / M4. Kiwamu Haskell . ATS .



HaLVM Galois, , .





( ), , . (, , , : CλaSH Haskell).



GHC , GHC Haskell .



Compiling for FPGA/ASIC .



EDSL



Code Generation EDSLs Circuit Design EDSLs . , , .



. EDSL (Embedded Domain-Specific Language, - ) Haskell, . .



: , , Haskell. Haskell — . , .



:





:



  • Haskell, , ( ). , , .
  • . , Copilot / , SBV , Atom .


, Haskell . , , , .





, , , , .



:





? (, . , , Lava .)



. ( ), Haskell. , :



  • ,
  • ( Haskell, - , , ),
  • ( , LLVM, C, VHDL, , ..).


«» Haskell.



, Haskell - . Haskell, .




All Articles