EDG C++ फ्रंट-एंड सार्वजनिक हुआ
EDG का लंबे समय से चल रहा वाणिज्यिक C/C++ कंपाइलर फ्रंट-एंड, जिसका उपयोग कई स्वामित्व वाले कंपाइलरों, IDEs, और स्थिर विश्लेषण टूल्स के अंदरूनी हिस्से में किया जाता रहा है, अब Apache 2.0 लाइसेंस और LLVM exception के तहत ओपन-सोर्स कर दिया गया है। टिप्पणीकार इसकी standards conformance की प्रतिष्ठा, कई प्रमुख कंपाइलर डाइलेक्ट्स (GCC, Clang, MSVC) का अनुकरण करने की क्षमता, source-to-source transformation क्षमताओं, और बेहद तेज़ builds को रेखांकित करते हैं। साथ ही, वे नोट करते हैं कि EDG कंपनी अपने संचालन को समेट रही है, जिससे दीर्घकालिक रखरखाव पर सवाल उठते हैं और Clang तथा GCC की ओर व्यापक बदलाव को बल मिलता है, जो खुले स्रोत C++ फ्रंट-एंड्स में प्रमुख बनते जा रहे हैं।
EDG C++ फ्रंट-एंड क्या है
- लंबे समय से चल रहा वाणिज्यिक C/C++ कंपाइलर फ्रंटएंड, जिसका उपयोग कई स्वामित्व वाले कंपाइलरों, IDEs, और स्थिर विश्लेषकों के अंदरूनी हिस्से में किया जाता है।
- GCC, Clang, और MSVC के साथ चार प्रमुख C++ फ्रंटएंड्स में से एक।
- पार्सिंग, पूर्ण सिमेंटिक विश्लेषण, और एक इंटरमीडिएट भाषा (IL) बनाने पर केंद्रित; पूर्ण ऑप्टिमाइज़िंग बैकएंड नहीं।
- C++‑to‑C और C++‑to‑C++ स्रोत जनरेटर के रूप में काम कर सकता है।
ओपन-सोर्स, लाइसेंस, और कंपनी की स्थिति
- फ्रंटएंड अब GitHub पर Apache-2.0 + LLVM exception के साथ सार्वजनिक है।
- LLVM exception: कोड के कुछ हिस्सों को एम्बेड करने वाले बाइनरीज़ को कुछ Apache शर्तों के बिना शिप करने की अनुमति देता है और conflicting patent/indemnity clauses को छोड़कर GPLv2 के साथ संयोजन की अनुमति देता है।
- कई टिप्पणियों में कहा गया है कि कंपनी अपने संचालन को समेट रही है; ओपन-सोर्सिंग को आंशिक रूप से एक गरिमापूर्ण निकास और शेष ग्राहकों के लिए एक सेतु के रूप में देखा जा रहा है।
तकनीकी क्षमताएँ और डिज़ाइन
- GCC, Clang, MSVC, और अन्य के कई संस्करणों और डाइलेक्ट्स का अनुकरण कर सकता है, जिनमें उनकी विचित्रताएँ और बग भी शामिल हैं।
- कई C++ मानकों का समर्थन करता है, कथित तौर पर लगभग C++23 तक और कुछ C++26 फीचर्स सहित; साथ ही कई डाइलेक्ट्स (GNU, Microsoft, पुराने cfront, आदि)।
- स्रोत-से-स्रोत ट्रांसफ़ॉर्मेशन बैकएंड और IL निरीक्षण के लिए टूल्स, तथा टेम्पलेट इंस्टैंसिएशन के लिए एक prelinker प्रदान करता है।
- अधिकांशतः पोर्टेबल C में, कस्टम डेटा संरचनाओं के साथ लिखा गया है, C++ स्टैंडर्ड लाइब्रेरी का उपयोग नहीं करता, संकलित होने में बहुत तेज़ है, और छोटे बाइनरी बनाता है।
C++ पर ऐतिहासिक भूमिका और प्रभाव
- प्रमुख वाणिज्यिक कंपाइलरों में उपयोग किया गया (कुछ embedded और console toolchains सहित)।
- पुराने C++98
exporttemplates के पूर्ण समर्थन वाला एकमात्र implementation, जिसने उनके अंततः हटाए जाने को प्रभावित किया। - static reflection जैसी नई C++ सुविधाओं के प्रोटोटाइप के लिए उपयोग किया गया।
इकोसिस्टम पर प्रभाव और भविष्य की संभावनाएँ
- कई लोग इस रिलीज़ को “बड़ी खबर” मानते हैं, लेकिन साथ ही इसे एक प्रमुख फ्रंटएंड का प्रभावी end-of-life भी समझते हैं, क्योंकि अधिकांश विक्रेता Clang/GCC की ओर जा चुके हैं या जा रहे हैं।
- कुछ लोगों को उम्मीद है कि ओपन सोर्स EDG को “दूसरा जीवन” दे सकता है; अन्य लोग C++ फ्रंटएंड की जटिलता और स्पष्ट मेंटेनर आधार की कमी को देखते हुए संशय में हैं।
- चर्चा में घटती ग्राहक संख्या और लगातार बढ़ते C++ मानकों को ट्रैक करने के बोझ का उल्लेख है।
कोडबेस की विशेषताएँ और शैली
- विशिष्ट, पुरानी C-जैसी शैली: फ़ंक्शन सिग्नेचर और brace के बीच टिप्पणियाँ, असामान्य नामकरण परंपराएँ (जैसे
a_/an_prefix)। - इसे कंपाइलर इंजीनियरिंग इतिहास के एक स्नैपशॉट के रूप में देखा जाता है, जिसमें बहुत लंबा commit history और कुछ विचित्र घटक हैं (जैसे एक बड़ा हाथ से बनाया गया Unicode FSM)।