मुख्य कंटेंट तक स्किप करें

Whale कंपाइलर टूलचेन

सारांश

Whale Wave प्रोग्रामिंग भाषा के लिए एक विशेष कंपाइलर टूलचेन है। Whale पूरा प्रक्रिया का जिम्मा लेता है, Wave में लिखे स्रोत कोड का विश्लेषण, अनुकूलन और लक्षित प्लेटफॉर्म के लिए बाइनरी में परिवर्तित करता है। यह टूलचेन केवल Wave भाषा के लिए डिज़ाइन किया गया है और अन्य भाषाओं के समर्थन या बाहरी टूलचेन एकीकरण पर विचार नहीं करता है।

डिज़ाइन लक्ष्य

Whale के मुख्य डिज़ाइन लक्ष्यों में शामिल हैं:

  • केवल Wave समर्थन: Whale केवल Wave भाषा का समर्थन करता है और अन्य भाषाओं के साथ एकीकरण पर विचार नहीं करता।
  • मॉड्यूलर संरचना: प्रत्येक कार्यक्षमता को स्वतंत्र मॉड्यूल के रूप में डिज़ाइन किया गया है, जिन्हें आवश्यकतानुसार जोड़ा या हटाया जा सकता है।
  • स्वतंत्र IR का उपयोग: Whale LLVM IR आदि जैसी बाहरी IR का उपयोग नहीं करता बल्कि अपनी खुद की मध्यवर्ती अभिव्यक्ति को परिभाषित करता है।
  • मल्टी-टार्गेट प्लेटफॉर्म समर्थन: ऑपरेटिंग सिस्टम और हार्डवेयर आर्किटेक्चर से स्वतंत्र रूप से तरह-तरह के वातावरणों को लक्षित कर सकते हैं।
  • सटीक नियंत्रण: संपूर्ण संकलन प्रक्रिया को डेवलपर्स द्वारा विस्तृत रूप से नियंत्रित करने के लिए कॉन्फ़िगर किया गया है।
  • बाहरी निर्भरता हटाना: Whale बाहरी C/C++ रनटाइम या कंपाइलर पर निर्भर नहीं करता।

लक्ष्य समर्थन

Whale नीचे बताए गए लक्षित वातावरणों का समर्थन करने का लक्ष्य रखता है:

  • ऑपरेटिंग सिस्टम:
    • लिनक्स
    • विंडोज़
    • मैकओएस
    • UEFI (BIOS को छोड़कर)
    • WaveOS (स्वयं का OS)
  • आर्किटेक्चर:
    • x86_64 (AMD64)
    • ARM64
    • अन्य को मॉड्यूल जोड़कर विस्तार किया जा सकता है।

बाहरी इंटरफेस (FFI)

तकनीकी रूप से Whale FFI (विदेशी फ़ंक्शन इंटरफ़ेस) का समर्थन कर सकता है, लेकिन Wave के दर्शन के अनुसार बाहरी भाषाओं के साथ एकीकरण की अनुशंसा नहीं की जाती और यह मानक रूप से प्रदान किया नहीं जाता। Wave को इस प्रकार डिज़ाइन किया गया है कि सभी कार्यप्रणालियों को अपनी भाषा में ही लागू किया जा सके।

विस्तारशीलता

Whale निम्नलिखित तरीकों से विस्तारित किया जा सकता है:

  • नई ऑपरेटिंग सिस्टम या आर्किटेक्चर के लिए मॉड्यूल जोड़ना
  • उपयोगकर्ता-परिभाषित अनुकूलन एल्गोरिदम सम्मिलन
  • बिल्ड प्रोफाइल और लिंक सेटिंग्स का कस्टमाइज़ेशन
  • स्वयं का निष्पादन प्रारूप परिभाषित करना