صفحات التوثيق
توثيق السلطان
هذا توثيق السلطان، وهي لغة برمجة أنظمة مستضافة ذاتيا (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: ما يوجد وما يلزم بعد |
المساهمة#
| الصفحة |
ما تتناوله |
| دليل المساهمين |
تنظيم المستودع، وبناء نسخ التطوير، وقواعد كتابة مصادر المترجم، وأسلوب التوثيق |
| الاختبارات |
تشغيل مجموعة الاختبارات، وتوجيهات الاختبار، وإضافة اختبارات |
| الأمثلة |
البرامج المثالية وطريقة تنظيمها |
السجل التاريخي#
هذه الصفحات سجلات لقرارات وعمليات ترحيل سابقة. تصف المشروع كما كان وقت كتابتها، أما الدليل والمرجع والبنية
الداخلية فتصفه كما هو الآن.
إبقاء التوثيق محدثا#
التنفيذ هو المرجع الحاكم. إذا غيّر تعديلٌ عقدا موصوفا هنا، فحدّث الصفحة في التعديل نفسه بدلا من إضافة ملاحظة
حالة منفصلة. الأسلوب والأعراف موجودة في دليل المساهمين.