السلطان
  1. الرئيسية
  2. التوثيق

توثيق السلطان

صفحات التوثيق

توثيق السلطان

هذا توثيق السلطان، وهي لغة برمجة أنظمة مستضافة ذاتيا (self-hosted)، أي أن مترجمها مكتوب بها. كلماتها المفتاحية موجودة بالعربية والإنجليزية بوصفهما واجهتين لصياغة واحدة. الصفحات مقسمة بحسب الغرض: الدليل يعلّم اللغة، والمرجع يحدد قواعدها، والبنية الداخلية تشرح كيف يعمل المترجم، وصفحات المساهمة تشرح كيف تعدّله.

يقدم ملف README في جذر المستودع نظرة موجزة على المشروع وطرق بنائه.

الدليل

الصفحة ما تتناوله
البدء بناء المترجم، وأول برنامج، والترجمة والتشغيل والفحص
جولة في اللغة اللغة بالأمثلة: الأنواع، والدوال، والتحكم في التدفق، والسجلات، والتعدادات، ومطابقة الأنماط، والملكية، والأخطاء، والوحدات

المرجع

الصفحة ما تتناوله
نظام الأنواع الأنواع المدمجة والبنيوية، وهوية النوع، والأنواع العامة (generics)، والتحويلات العددية، والحساب الالتفافي (wrapping)
الملكية والإتلاف النقل، والاستعارة، والنسخ، وشيفرة الإسقاط (drop glue)، والقيم المؤقتة، وسعة المتجه، ومخصص الذاكرة
الأخطاء النتائج، والتمرير بـ ؟، وإنهيار، وstd.error، وإخفاقات وقت التشغيل، والرسائل المترجمة إلى لغة المستخدم
التشخيصات ما يطبعه المترجم: تخطيط الطرفية، ومخطط JSON، والأكواد العامة، والاقتراحات والإصلاحات
التقييم في وقت الترجمة وقت_الترجمة، وتعليقات التصريحات (annotations)، وتأكيدات وقت الترجمة
الوحدات والاستيراد صيغ الاستيراد، والحزم، وهوية الوحدة
التزامن الخيوط، والعمليات الذرية، ومشترك، وقفل، وقفل_قراءة_كتابة، وشرط_انتظار، ومرة، والقنوات، وفحص الالتقاط
التنسيق std.fmt: سلاسل التنسيق، والوسائط، والمنسقات المخصصة، والفحص في وقت الترجمة
الاختبار sultanc test: دوال @@اختبار يُشغَّل كل منها في عملية مستقلة، والتصفية، والأهداف الأخرى، وحالات الخروج
منسق المصدر sultanc fmt ومكتبة المنسق: الترتيب القانوني، وما يحفظه، والتكامل مع المحررات
تغطية المكتبة القياسية ما تقدمه المكتبة القياسية، وحدة بعد وحدة، مقارنة بـ Rust وGo
الأهداف أنظمة التشغيل والمعماريات المدعومة، والخلفية التي تخدم كل منها
اعتماديات المنصة كل دالة نظام تستوردها المكتبة القياسية، وما تنفذه المكتبة القياسية بنفسها
المصطلحات العربية المفردات العربية المعتمدة للغة والمكتبة القياسية ورسائل التشخيص

البنية الداخلية

الصفحة ما تتناوله
بنية المترجم المسار من الشيفرة المصدرية إلى الملف التنفيذي، وتنظيم المجلد compiler/
MSIR وتوليد الشيفرة التمثيل الوسيط المتحقق منه، والخلفية الأصلية (Native) وخلفية LLVM، والروابط (linkers)
مسار الأمان كيف يُفحص النقل والاستعارة وأعمار المراجع وتسرب القيم
المفسر sultanc run: نموذج التنفيذ، ونموذج الذاكرة، واستدعاءات المضيف
جسر الواجهة الأمامية للغة سي خلف استورد "x.h" واستورد "x.c": المسار، والملفات المسؤولة، والتصريحات، وشيفرة سي المترجمة، والحدود
الإقلاع الذاتي (bootstrap) Stage0 المكتوب بلغة C، وseed الخاص بـ WebAssembly، وطرق البناء، وكيف يثبت التكامل المستمر (CI) كل طريق منها
TLS والتشفير تنفيذ TLS 1.3 في المكتبة القياسية ودوال التشفير الأساسية التي يقوم عليها
iSpeak طبقة الرسائل التي تقف خلف كل رسالة تشخيص، بالعربية والإنجليزية، وعقود السياق الخاصة بها
مقارنة التشخيصات تشخيصات السلطان مقارنة بـ rustc وClang وGCC وSwift: ما يوجد وما يلزم بعد

المساهمة

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

السجل التاريخي

هذه الصفحات سجلات لقرارات وعمليات ترحيل سابقة. تصف المشروع كما كان وقت كتابتها، أما الدليل والمرجع والبنية الداخلية فتصفه كما هو الآن.

الصفحة ما تسجله
القيم الحرفية للبايتات مقترح للغة لم يُعتمد
تاريخ iSpeak كيف أُدخلت طبقة الرسائل
مراجعة أسباب iSpeak مراجعة لكل مفتاح من مفاتيح الأسباب السياقية
إلغاء بيئة التشغيل المدمجة نقل بيئة التشغيل المدمجة في المترجم إلى المكتبة القياسية
جرد ترحيل طبقة نظام التشغيل نقل طبقة نظام التشغيل إلى المكتبة القياسية

إبقاء التوثيق محدثا

التنفيذ هو المرجع الحاكم. إذا غيّر تعديلٌ عقدا موصوفا هنا، فحدّث الصفحة في التعديل نفسه بدلا من إضافة ملاحظة حالة منفصلة. الأسلوب والأعراف موجودة في دليل المساهمين.