ض هي لغة برمجة باللغة العربية حديثة مصممة لتكون سهلة التعلّم وقوية في نفس الوقت، وقد اخترنا تسميتها بـ«ض» لما يحمله هذا الحرف من دلالةٍ عميقة؛ إذ يُعدّ حرف الضاد رمزًا للغة العربية وتميّزها، فكان الاسم تعبيرًا عن هوية اللغة وجذورها، وتأكيدًا على أن البرمجة يمكن أن تنطلق من العربية وتُعبّر بها دون وسيط.
ض هي لغة برمجة مُفسَّرة، ديناميكية الأنواع، بأسلوب بايثون، مصممة للناطقين بالعربية ولكل من يريد تعلم البرمجة بالعربية.
[!NOTE]
- المُفسِّر يُنفِّذ الكود مباشرةً من شجرة الصياغة المجردة (AST) بدون تحويل إلى كود ثنائي (Bytecode)
- البرمجة الكائنية (OOP) لم تكتمل بعد وهي قيد التطوير
- التصميم الحالي يُركِّز على البساطة وسهولة الفهم والتطوير
- صياغة عربية بالكامل - جميع الكلمات المفتاحية والدوال ورسائل الخطأ بالعربية
- أسلوب بايثون - صياغة مألوفة تعتمد على المسافات البادئة
- برمجة كائنية بسيطة - أصناف مع توابع وخصائص
- إدخال مرن - معالجة مرنة لتنوعات الحروف العربية (أ، ا، ء، آ، إ)
- دوال مدمجة غنية - الطباعة، الإدخال، عمليات القوائم، والتنسيق
- ملف تنفيذي مزدوج - شغّل بـ
daadأوض
# استنساخ المستودع
git clone https://github.com/daadLang/daad.git
cd daad
# البناء
make build
# التثبيت على النظام (اختياري، يتطلب sudo)
sudo make install- Go 1.25 أو أعلى
# تشغيل ملف ض (الملف التنفيذي الإنجليزي)
daad run ملفي.daad
# تشغيل ملف ض (الملف التنفيذي العربي)
ض شغل ملفي.ض
# تحليل الرموز (للتنقيح)
daad tokenize ملفي.daad
# عرض شجرة الصياغة المجردة
daad ast ملفي.daadاطبع("مرحبا بالعالم!")
متغير = 10 + 5
نتيجة = متغير * 2 - 3
قوة = 2 ** 8
إذا درجة >= 90:
اطبع("ممتاز")
وإذا درجة >= 75:
اطبع("جيد جداً")
وإذا درجة >= 60:
اطبع("جيد")
وإلا:
اطبع("راسب")
# حلقة طالما
س = 1
طالما س <= 5:
اطبع(س)
س = س + 1
# حلقة لكل
أسماء = ["علي", "أحمد", "محمد"]
لكل اسم في أسماء:
اطبع(اسم)
# حلقة كرر (اختصار)
كرر 5 مرات:
اطبع("مرحبا")
دالة تحقق(عدد):
إذا عدد % 2 == 0:
أرجع "زوجي"
وإلا:
أرجع "فردي"
اطبع(تحقق(7)) # فردي
صنف شخص:
دالة __بناء__(ذاتي, اسم):
ذاتي.الاسم = اسم
دالة عرف_نفسك(ذاتي):
اطبع("أنا " + ذاتي.الاسم)
أحمد = شخص("أحمد")
أحمد.عرف_نفسك() # يطبع: أنا أحمد
| الكلمة المفتاحية | المعنى بالإنجليزية |
|---|---|
| إذا | if |
| وإذا | elif |
| وإلا | else |
| طالما | while |
| لكل | for |
| في | in |
| اخرج | break |
| تابع | continue |
| أرجع | return |
| الكلمة المفتاحية | المعنى بالإنجليزية |
|---|---|
| دالة | function |
| صنف | class |
| ذاتي | self |
| الكلمة المفتاحية | المعنى بالإنجليزية |
|---|---|
| صحيح | true |
| خطأ | false |
| و | and |
| أو | or |
| ليس | not |
| لاشيء | null |
| الدالة | الوصف | المقابل بالإنجليزية |
|---|---|---|
| اطبع | طباعة المخرجات | |
| ادخل | قراءة المدخلات | input |
| طول | الحصول على الطول | len |
| نطاق | توليد نطاق | range |
| نوع | الحصول على النوع | type |
| اضف | إضافة لقائمة | append |
| ادفع | دفع لقائمة | push |
| ازل | إزالة من قائمة | pop |
| انسخ | نسخ قائمة | copy |
| افرغ | تفريغ قائمة | clear |
| نسق | تنسيق نص | format |
| صحيح | تحويل لعدد صحيح | int |
| عشري | تحويل لعدد عشري | float |
| نص | تحويل لنص | str |
تدعم لغة ض الامتدادات التالية:
.daad.dad.ض
- توثيق اللغة - دليل اللغة الكامل
- مواصفات القواعد - القواعد الرسمية (EBNF)
نرحب بمساهماتكم! سواء كانت إصلاح أخطاء، إضافة ميزات جديدة، أو تحسين التوثيق. لا تتردد في فتح (Pull Request) أو الإبلاغ عن مشكلة (Issue).
هذا المشروع مرخص بموجب رخصة Apache-2.0 - راجع ملف LICENSE للتفاصيل.