Skip to content

Repository files navigation

شعار لغة باء

لغة باء

لغة برمجة نظم ذات صياغة عربية، تنتج برامج أصلية لويندوز ولينكس.

الإصدار 0.6.0 · ويندوز x86-64 · لينكس x86-64

باء لغة ومُصرِّف عربيان لبناء برامج أصلية. يملك المُصرِّف المرجعي المكتوب بلغة C تعريف الصياغة والتحليل الدلالي والتشخيصات والنظام الوسيط وتوليد مصدر نظم. يستخدم مسار الإنتاج مجمّع نظم افتراضياً، ولا يرجع بصمت إلى مجمّع آخر عند الفشل.

مثال سريع

احفظ الملف الآتي باسم مرحبا.baa بترميز UTF-8:

صحيح الرئيسية() {
    اطبع "مرحباً بالعالم!".
    إرجع ٠.
}

ثم صرّفه وشغّله:

.\build\baa.exe .\مرحبا.baa -o .\مرحبا.exe
.\مرحبا.exe
./build-linux/baa ./مرحبا.baa -o ./مرحبا
./مرحبا

ما الذي توفره باء؟

  • كلمات مفتاحية وأعداد وعلامات ترقيم عربية في مصدر البرنامج.
  • تصريف أصلي إلى PE/COFF على ويندوز وELF على لينكس لمعمارية x86-64.
  • أنواع صحيحة وعشرية، مؤشرات، مصفوفات، نصوص، هياكل، اتحادات، تعدادات، ومؤشرات دوال.
  • نظام وسيط داخلي، تحسينات متعددة المستويات، وفحوص IR وSSA.
  • مكتبة قياسية تشمل النصوص، الذاكرة، الملفات، العمليات المهيكلة، والحاويات الأساسية.
  • تشخيصات عربية ذات رموز ثابتة ونطاقات مصدر دقيقة.
  • عقود JSON مستقرة للتشخيصات والرموز والتلوين والإكمال والتنسيق والبنية والأدوات المحيطة.
  • بناء متعدد الملفات، مسارات تضمين، أهداف متعددة، وكاش تزايدي اختياري.

التفاصيل الدقيقة للصياغة والسلوك موجودة في مواصفة اللغة، أما القيود المؤكدة فموجودة في القيود المعروفة.

البناء

المتطلبات

  • CMake 3.10 أو أحدث.
  • مُصرِّف C يدعم C11: MinGW-w64 على ويندوز أو GCC/Clang على لينكس.
  • مجمّع نظم عند تصريف برامج باء إلى ملفات كائن أو ملفات تنفيذية.
  • Python 3 لتشغيل بوابات الجودة.

يمكن تحديد ملف نظم التنفيذي عبر --nazm-path أو متغير البيئة BAA_NAZM، وإلا يبحث باء عن الأمر نظم في PATH.

ويندوز

git clone https://github.com/OmarAglan/Baa.git
cd Baa
cmake -S . -B build -G "MinGW Makefiles"
cmake --build build
.\build\baa.exe --version

لينكس

git clone https://github.com/OmarAglan/Baa.git
cd Baa
cmake -S . -B build-linux -DCMAKE_BUILD_TYPE=Release
cmake --build build-linux --parallel
./build-linux/baa --version

توجد إعدادات إضافية جاهزة في CMakePresets.json، كما توجد إرشادات المسارات وسلسلة الأدوات على ويندوز في دليل سلسلة الأدوات.

أوامر أساسية

baa <ملف.baa> -o <البرنامج>
baa --check <ملف.baa>
baa -S <ملف.baa>
baa --target=x86_64-windows <ملف.baa>
baa --target=x86_64-linux <ملف.baa>
baa --help

يعرض baa --help القائمة الكاملة والمحدّثة للخيارات. عند اختلاف الهدف عن نظام المضيف، يقتصر الدعم الحالي على توليد مصدر التجميع عبر -S؛ راجع مصفوفة التوافق قبل الاعتماد على مسار عابر للأهداف.

منظومة باء

  • نظم: المجمّع العربي ومسار الإنتاج الافتراضي.
  • تكوين: نظام المشروعات والبناء والحزم.
  • Baa-LSP: خادم بروتوكول خدمات اللغة دون واجهة رسومية.
  • قلم: بيئة التطوير المخصصة لباء.

يبقى باء مصدر الحقيقة للغة والتشخيصات والتنسيق والبنية الدلالية؛ لا تعيد الأدوات المحيطة تنفيذ قواعده في محللات مستقلة.

التحقق والجودة

python .\scripts\qa_run.py --mode quick
python .\scripts\qa_run.py --mode full
python .\scripts\qa_run.py --mode release

تجمع بوابة الإصدار اختبارات المُصرِّف المرجعي، العقود، الأمثلة، التشخيصات، الحتمية، مسارات Unicode، تكامل نظم، واختبارات الضغط المناسبة للإصدار.

التوثيق

المستند الغرض
دليل المستخدم التثبيت والاستخدام اليومي
الكتاب العربي تعلّم اللغة بالعربية
مواصفة اللغة المرجع الرسمي للصياغة والسلوك
عقد الوحدات والظهور قواعد ملفات .baa و.baahd والتصريحات والربط
الأمثلة برامج جاهزة للبناء والتجربة
المكتبة القياسية الواجهات وقواعد ملكية الذاكرة
عقود الأدوات واجهات سطر الأوامر ومخططات JSON
البنية الداخلية معمارية المُصرِّف للمساهمين
القيود المعروفة الحدود الحالية المؤكدة
خارطة الطريق الأولويات والمراحل القادمة
سجل التغييرات تاريخ الإصدارات والتغييرات

تنفيذ C هو المُصرِّف المرجعي الرسمي. لا يحتاج بناء باء إلى مُصرِّف باء سابق، وتتحقق بوابة السياسة آلياً من بقاء هذا الحد واضحاً.

About

لغة برمجة نُظُم مُصرَّفة بصياغة عربية

Topics

Resources

Stars

7 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages