انتقل إلى المحتوى الرئيسي

سلسلة أدوات مجمّع Whale

نظرة عامة

Whale هو سلسلة أدوات مجمّع مخصص للغة البرمجة Wave. يتحمل Whale مسؤولية تحليل مصدر الكود المكتوب بـ Wave وتحسينه وتحويله إلى ثنائي للمنصة المستهدفة. تم تصميم سلسلة الأدوات هذه لتكون مخصصة فقط للغة Wave ولا تأخذ بعين الاعتبار دعم اللغات الأخرى أو التكامل مع سلسلة أدوات خارجية.

أهداف التصميم

تشمل أهداف التصميم الرئيسية لـ Whale ما يلي:

  • دعم مخصص لـ Wave: يدعم Whale لغة Wave فقط ولا يأخذ بعين الاعتبار التكامل مع لغات أخرى.
  • هيكلية قائمة على الوحدات: تتكون كل وظيفة من وحدات مستقلة يمكن إضافتها أو إزالتها حسب الحاجة.
  • استخدام IR مستقل: لا يستخدم Whale IR خارجيًا مثل LLVM IR، ويقوم بتعريف تمثيل وسيط خاص به.
  • دعم الأنظمة الأساسية المتعددة: يمكن البناء لاستهداف بيئات مختلفة بغض النظر عن نظام التشغيل والمعمارية العتادية.
  • التحكم الدقيق: مصمم بحيث يمكن للمطور التحكم في كل مرحلة من مراحل الترجمة بشكل دقيق.
  • إزالة الاعتماد الخارجي: لا يعتمد Whale على وقت تشغيل أو مترجم C/C++ خارجي.

دعم الهدف

يهدف Whale إلى دعم البيئات المستهدفة التالية:

  • نظام التشغيل:
    • لينكس
    • ويندوز
    • ماك أو إس
    • UEFI (باستثناء BIOS)
    • WaveOS (نظام تشغيل خاص)
  • المعمارية:
    • x86_64 (AMD64)
    • ARM64
    • يمكن التوسع إلى أخرى من خلال إضافة وحدات

التكامل الخارجي(FFI)

صمم Whale لدعم FFI من الناحية التقنية، ولكن وفقًا لفلسفة Wave، لا يُشجع على التكامل مع لغات خارجية ولا يتم تقديمه بشكل قياسي. تم تصميم Wave لتحقيق كل الوظائف داخل لغته الخاصة.

قابلية التوسع

يمكن توسيع Whale بالطرق التالية:

  • إضافة وحدات لأنظمة تشغيل أو معمارية جديدة
  • إدراج خوارزميات تحسين مخصصة
  • تخصيص إعدادات الملف التعريفي للبناء والربط
  • تحديد تنسيق تنفيذ خاص