لغة برمجة نظم ذات صياغة عربية، تنتج برامج أصلية لويندوز ولينكس.
الإصدار 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 --versiongit 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 هو المُصرِّف المرجعي الرسمي. لا يحتاج بناء باء إلى مُصرِّف باء سابق، وتتحقق بوابة السياسة آلياً من بقاء هذا الحد واضحاً.
