تضمين هاسكل: المجمعين وتجميع المترجمين

هذه المقالة هي ترجمة لمنشور كريس هوداب تضمين Haskell: Compilers ، and compilation compilers في هذا المنشور ، يستكشف المؤلف طرقًا مختلفة لاستخدام Haskell لكتابة التعليمات البرمجية للأنظمة المضمنة. دعونا نعطي الكلمة للمؤلف.



في تقريري الأخير آخر ، ذكر أن بعض الأمور تتطلب تفسيرا أفضل لأنني أسعى دائما لشرح وتوضيح.



تتناول هذه المدونة استخدام Haskell مع الأنظمة المضمنة. ماذا يعني ذلك حتى؟ نرى فئتين واسعتين (تعكسان الشرائح في الصفحة الأخيرة بالإضافة إلى صفحة الروابط الخاصة بنا ):



  • التجميع الكامل: يجمع كود هاسكل لمهمة مضمنة.
  • تجميع محدود: تجميع بعض المجموعات الفرعية المحدودة من كود هاسكل لغرض مضمّن.
  • استضافة EDSL والمترجم: الاستضافة في Haskell و EDSL والمترجم للاستخدام المضمن.


بقدر ما أعلم ، لقد توصلت إلى هذه الفئات. إذا كان شخص ما يعرف تصنيفًا أكثر رسوخًا أو أسماء أو أمثلة أكثر ملاءمة لمن كتب عنها أولاً ، فيرجى إبلاغي بذلك.



قد يبدو كتجمع تعسفي أحادي الجانب ؛ إنه نوع من هذا القبيل. العموم هو أنه في جميع الحالات يتم استخدام Haskell للتعبير عن شيء ما (برامج ، مخططات ، مواصفات ، أطلق عليها ما تريد) لغرض مضمّن. المزيد عن هذا لاحقًا.



أستبعد أشياء مثل Cryptol و Idris لأنها ، التي يتم تنفيذها في Haskell ومناسبة للأنظمة الأساسية المضمنة ، هي نفسها لغات مختلفة. يمكنني التخلي عن هذا التمييز بشكل تعسفي في المستقبل إذا كنت أرغب ...



تجميع كامل



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