Menanamkan Haskell: Kompiler dan Kompilasi Kompilator

Artikel ini adalah terjemahan dari posting Chris Hodapp Embedding Haskell: Compilers, and compiler compiler Pada posting ini, penulis mengeksplorasi berbagai pendekatan untuk menggunakan Haskell untuk menulis kode untuk sistem tertanam. Mari beri penjelasan kepada penulis.



Pada postingan saya yang terakhir disebutkan bahwa beberapa hal perlu penjelasan yang lebih baik karena saya selalu berusaha menjelaskan dan memperjelas.



Blog ini membahas tentang penggunaan Haskell dengan sistem tertanam. Apa artinya itu? Kami melihat beberapa kategori besar (yang mencerminkan slide di halaman terakhir serta halaman link kami ):



  • Kompilasi Lengkap: Mengompilasi kode Haskell untuk tugas inline.
  • Kompilasi terbatas: Kompilasi beberapa subset terbatas dari kode Haskell untuk tugas inline.
  • EDSL dan compiler hosting: hosting di Haskell, EDSL dan compiler untuk penggunaan tertanam.


Sejauh yang saya tahu, saya menemukan kategori ini. Jika seseorang mengetahui klasifikasi yang lebih mapan, nama atau contoh yang lebih sesuai dari orang yang menulis tentangnya terlebih dahulu, beri tahu saya.



Ini mungkin terlihat seperti pengelompokan sepihak dan sewenang-wenang; seperti itu. Kesamaannya adalah bahwa dalam semua kasus Haskell digunakan untuk mengekspresikan sesuatu (program, skema, spesifikasi, sebut saja apa yang Anda inginkan) untuk tujuan sebaris. Lebih lanjut tentang ini nanti.



Saya mengecualikan hal-hal seperti Cryptol dan Idris karena, diimplementasikan di Haskell dan cocok untuk platform yang disematkan, bahasa itu sendiri berbeda. Saya dapat dengan sewenang-wenang membatalkan perbedaan ini di masa depan jika saya ingin ...



Kompilasi lengkap



, , 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