السلطان

برمجة الأنظمة،
بالعربية.

السلطان لغة برمجة عربية لبرمجة الأنظمة، تترجم إلى شيفرة أصلية ومترجمها مكتوب بها. اكتب بالعربية أو بالإنجليزية: البرنامج واحد، والمترجم واحد، ورسائل الأخطاء بلغتك.

main.sn
استورد المكتبة.دخ.println;

عرف مجموع(حتى: عدد): عدد {
    دع الناتج: متغير عدد = 0;
    دع ع: متغير عدد = 1;
    طالما (ع <= حتى) {
        الناتج := الناتج + ع;
        ع := ع + 1;
    }
    أرجع الناتج;
}

عرف الرئيسية(): عدد {
    اطبع_سطر("مرحبا من السلطان");
    أرجع مجموع(8);
}
$ sultanc main.sn -o app && ./app مرحبا من السلطان رمز الخروج 36

من المصدر إلى الملف التنفيذي

تلتقي التهجئتان العربية والإنجليزية في المحلل اللفظي، ثم يعمل كل ما بعده على هويات واحدة: لا مسار عربي ولا مسار إنجليزي في الدلالة.

  1. المحلل اللفظيالعربية والإنجليزية تصيران رموزا واحدة
  2. الشجرة المجردةالتحليل، وفك السكر، والتعليقات
  3. الأسماء والأنواعالوحدات، والهويات، والأنماط
  4. الأمانالملكية والاستعارة وتدفق التحكم (SSF)
  5. MSIRتمثيل وسيط محايد للمنصة، يمر على مدقق
  6. الخلفية والربطأصلية أو LLVM، ثم روابط المترجم: ELF وMach-O وPE وWasm

المراحل كما في بنية المترجم. ويمر MSIR على مدقق قبل أن يصل إلى أي خلفية.

لغتان، وبرنامج واحد

الكلمات المفتاحية العربية والإنجليزية واجهتان متكافئتان لصياغة واحدة: الشجرة المجردة نفسها، والدلالة نفسها، ورسائل التشخيص نفسها. والرسائل بالعربية افتراضيا، و--lang=en يعرضها بالإنجليزية.

جولة في اللغة   كل الأمثلة (87)

الملكية والاستعارة
يُفحص كل نقل واستعارة قبل توليد الشيفرة، دون جامع نفايات.
مطابقة أنماط شاملة
طابق يرفض البرنامج إن نسيت حالة.
الأخطاء قيم
نتيجة للنجاح أو الفشل، و؟ لتمرير الخطأ.
ناتج أصلي، بلا libc
ELF وMach-O وPE/COFF وWebAssembly بروابط المترجم نفسه، على 38 هدفا.

الحزم مع سوباكس

سوباكس مدير حزم السلطان، ومكتوب بالسلطان. يجلب الاعتماديات من فهرس الحزم أو من git، ويثبّتها في Supax.lock حتى يُبنى مشروعك غدا كما بُني اليوم، ويعمل دون شبكة بعد أول جلب.

نهر إطار ويب مكتوب بالسلطان، ومنشور في الفهرس.

سوباكس على GitHub

لمن أراد أن يتعلم البرمجة قبل أن يتعلم الإنجليزية.

كثيرون يتوقفون عند أول سطر شيفرة لأن كلماته ليست بلغتهم. السلطان يزيل هذا الحاجز دون أن يعزلك: البرنامج نفسه يُقرأ بالإنجليزية متى شئت، فتعبر بين اللغتين كما تريد.

التثبيت

git clone https://github.com/sultan-language/sultanc.git cd sultanc ./build.sh --bootstrap=wasm

Linux وmacOS. ولـ Windows وFreeBSD وAndroid: تثبيت السلطان