Inside Radix
Radix compiler#
راديكس هو مصرف Faber. وهو صندوق خاص (radix/) ينفذ خط أنابيب الترجمة الكامل من النص المصدر إلى خلفيات الهدف.
خط الأنابيب#
يُخفض راديكس مصدر Faber عبر ثلاثة تمثيلات وسيطة:
- HIR (تمثيل وسيط عالي المستوى) — النواة الدلالية. يعمل هنا دمج لغة القارئ، وفحص الأنواع، وخلفيات HIR المباشرة.
- MIR (تمثيل وسيط متوسط المستوى) — التمثيل الوسيط ذو الشكل التنفيذي. هذا هو حدود الملكية الدلالية حيث يعمل تحليل الاستعارة والتأثير.
- AIR (تمثيل وسيط للتفاضل الآلي) — تحويل دالي صرف للتفاضل الآلي والدمج، يُستخدم عبر مسارات هدف GPU.
مسارات الهدف#
| المسار | IR | المُخرَج | الحالة |
|---|---|---|---|
| زمن تشغيل CPU | MIR | FMIR (زمن تشغيل Rust) | مُشغَّل |
| LLVM | MIR | نص LLVM | تجريبي |
| WASM | MIR | نص WebAssembly | تجريبي |
| TypeScript | HIR | مصدر TypeScript | تجريبي |
| Go | HIR | مصدر Go | تجريبي |
| GPU/WGSL | AIR | WGSL عبر WGPU | تجريبي |
المعمارية#
يتبنى راديكس نهج انبعاث النص بدلاً من تضمين LLVM. تُنتج خلفيات الهدف نصاً بلغاتها الخاصة، ثم يُجمع هذا النص بواسطة سلسلة أدوات الهدف نفسها. هذا يُبقي المصرف قائماً بذاته ويجعل مُخرَج الهدف قابلاً للقراءة البشرية.
التشخيصات#
يُصدر راديكس رموز تشخيص مهيكلة بمعرفات مستقرة:
-
LEX0xx— أخطاء المحلل المعجمي -
PARSE0xx— أخطاء المحلل النحوي -
SEM0xx— أخطاء التحليل الدلالي -
DEFER0xx— ميزات مؤجلة (نحو سليم، لم تُنفذ بعد)
يمكن شرح كل تشخيص عبر faber explain <code>.
Radix compiler architecture#
Translation status: This page is currently available in English.