रेंडरिंगhi

Inside Radix

Radix compiler#

Radix Faber कंपाइलर है। यह एक निजी क्रेट (radix/) है, जो स्रोत टेक्स्ट से लक्ष्य बैकएंड तक की पूरी कंपाइलेशन पाइपलाइन लागू करता है।

पाइपलाइन#

Radix Faber स्रोत को तीन मध्यवर्ती निरूपणों के माध्यम से निम्नतर स्तर पर लाता है:

  1. HIR (High-level IR) — सिमैंटिक कोर। रीडर लोकेल एकीकरण, टाइप जाँच और HIR-प्रत्यक्ष बैकएंड यहीं काम करते हैं।
  2. MIR (Mid-level IR) — निष्पादन-आधारित IR। यही सिमैंटिक स्वामित्व सीमा है, जहाँ बॉरोइंग और इफ़ेक्ट विश्लेषण चलते हैं।
  3. AIR (Autodiff IR) — स्वचालित अवकलन और फ़्यूज़न के लिए शुद्ध-फ़ंक्शनल रूपांतरण, जिसका उपयोग GPU लक्ष्य लेन करती हैं।

लक्ष्य लेन#

लेनIRआउटपुटस्थिति
CPU रनटाइमMIRFMIR (Rust रनटाइम)जारी
LLVMMIRLLVM टेक्स्टप्रायोगिक
WASMMIRWebAssembly टेक्स्टप्रायोगिक
TypeScriptHIRTypeScript स्रोतप्रायोगिक
GoHIRGo स्रोतप्रायोगिक
GPU/WGSLAIRWGPU के माध्यम से WGSLप्रायोगिक

आर्किटेक्चर#

Radix, LLVM को एम्बेड करने के बजाय टेक्स्ट-उत्सर्जन का तरीका अपनाता है। लक्ष्य बैकएंड अपनी-अपनी भाषाओं में टेक्स्ट तैयार करते हैं, जिसे बाद में लक्ष्य के अपने टूलचेन द्वारा कंपाइल किया जाता है। इससे कंपाइलर आत्मनिर्भर रहता है और लक्ष्य आउटपुट मानव-पठनीय बना रहता है।

डायग्नॉस्टिक्स#

Radix स्थिर पहचानकर्ताओं वाले संरचित डायग्नॉस्टिक कोड उत्सर्जित करता है:

  • LEX0xx — लेक्सर त्रुटियाँ
  • PARSE0xx — पार्सर त्रुटियाँ
  • SEM0xx — सिमैंटिक विश्लेषण त्रुटियाँ
  • DEFER0xx — स्थगित सुविधाएँ (सही सिंटैक्स, अभी लागू नहीं)

हर डायग्नॉस्टिक को faber explain <code> के माध्यम से समझाया जा सकता है।

Radix compiler architecture#

Translation status: This page is currently available in English.

Read the English Radix compiler architecture reference.