2010-04-11 19 views
20

अपनी खुद की शिक्षा के लिए मैं उत्सुक हूं कि कौन से कंपेलर सी ++ फ्रंट एंड एंड बैक एंड का उपयोग करते हैं। क्या आप मुझे बता सकते हैं कि निम्नलिखित तकनीकों का उपयोग किया जाता है और यदि उनके पास कोई हॉलमार्क/फायदे हैं तो क्या?सी ++ कंपाइलर्स और बैक/फ्रंट सिरों

  • ओपन 64 - क्या यह बैक-एंड, फ्रंट एंड या दोनों है? कौन से कंपाइलर्स इसका इस्तेमाल करते हैं? मैं इसे CUDA संकलक में सामना करता हूँ।

  • ईडीजी - जहां तक ​​मैं यह कह सकता हूं इंटेल कंपाइलर्स और कॉमौ द्वारा सामने वाला उपयोग है। अन्य कंपाइलर्स इसका इस्तेमाल करते हैं? मुझे बढ़ावा स्रोत कोड में इसके कुछ संदर्भ मिले।

  • एएनटीएलआर - यह सामान्य पार्सर है। क्या कोई आम कंपाइलर इसका इस्तेमाल करता है?

बारे compilers:

  • सामने के अंत/बैक-एंड जीसीसी संकलक सुइट का उपयोग करता करता है के साथ

    ? क्या इसमें किसी अन्य कंपाइलर के साथ सामान्य विरासत है?

  • क्या फ्रंट एंड बैक एंड पीजीआई और पथस्केल कंपाइलर उपयोग करते हैं?

  • फ्रंट-एंड/बैक-एंड एक्सएल कंपाइलर (आईबीएम पेशकश) का उपयोग करता है।

इंटरनेट पर गहराई से लिंक या आपके व्यक्तिगत ज्ञान-कैसे बढ़िया होगा। मैंने कुछ Google खोज की, लेकिन मुझे जो जानकारी मिली वह आम तौर पर सतही थी।

धन्यवाद।

उत्तर

11

ईडीजी इंटेल और कॉमौ द्वारा उपयोग किए जाने वाले फ्रंट-एंड है। अन्य उपयोगकर्ताओं के लिए customers की ईडीजी की सूची देखें।

एएनटीएलआर एक पार्सर जनरेटर है। मुझे एएनटीएलआर के साथ बनाया गया एक पार्सर के चारों ओर बनाए गए किसी भी सी ++ कंपाइलर से अवगत नहीं है (जिसका मतलब यह नहीं है कि यह अस्तित्व में नहीं हो सकता है)।

जीसीसी कंपाइलरों का एक सूट है, सी, सी ++, फोरट्रान, एडा, जावा इत्यादि के लिए फ्रंट सिरों के साथ, और अधिक प्रोसेसर के लिए बैक-एंड के बारे में सोचने की आवश्यकता है।

ओपन 64 कई फ्रंट-सिरों (सी, सी ++, फोरट्रान, और संभवतः अन्य लोगों के लिए मुझे इस समय याद नहीं है) और बैक-सिरों (X64, Itanium, ARM, और लक्ष्यीकरण) सहित कंपाइलरों का एक सूट भी है। दोबारा, शायद दूसरों को मुझे याद नहीं है और/या इसके बारे में पता नहीं है)। मेरा मानना ​​है कि इसकी उत्पत्ति (इरादे से नहीं दी गई पन) एसजीआई का कंपाइलर है। मुझे लगता है कि ओपन 64 जीसीसी फ्रंट एंड्स के कुछ संस्करणों से लिया गया था, लेकिन मुझे पता नहीं है कि 1) आंतरिक रूप से जीसीसी के समान कैसे रहता है, या 2) जीसीसी का संस्करण व्युत्पन्न - लेकिन यह काफी लंबा रहा है कि मुझे लगता है कि यह हाल ही में जीसीसी 3.x था, और संभवतः जीसीसी 2.x।

मेरा मानना ​​है कि पथस्केल ने ओपन 64 से व्युत्पन्न कम से कम एक कंपाइलर बनाया है, लेकिन उनके पास अन्य भी हो सकते हैं।

जहां तक ​​मुझे पता है, आईबीएम का कंपाइलर पूरी तरह से अपनी रचना है। मैं अनुमान आईबीएम (अब बंद कर दिया गया) सी ++ के लिए विजुअलएज एक्सएल सी ++ के साथ कुछ विरासत/विकास/कोड साझा किया गया है, लेकिन यह निश्चित रूप से नहीं जानता है, और इसकी सीमा तक अनुमान लगाने शुरू भी नहीं कर सकता है, यह भी मानना ​​है कि यह सच है।

+0

धन्यवाद। एनवीसीसी (ओपन 64) के साथ मुझे बढ़ावा प्रकार के लक्षणों (या इसमें शामिल कुछ भी) का उपयोग करने की कोशिश करते समय बड़ी समस्याएं मिलती हैं। उम्मीद है कि कंपाइलर वर्कअराउंड्स की तलाश करते समय मुझे कुछ संदर्भ मिलेगा – Anycorn

+1

सी ++ एलएएलआर नहीं है, इसलिए यही कारण है कि (अपने पसंदीदा पार्सर जनरेटर का नाम दें) का उपयोग फ्रंट एंड के लिए नहीं किया जाता है। एएनटीएलआर एलएएलआर के बजाय एलएल (*) के आधार पर काम करता है, लेकिन मैं डूबता हूं कि सी ++ के कुछ ट्रिकियर सिंटैक्स के लिए भी पर्याप्त नहीं है। सी ++ व्याकरण संदर्भ मुक्त नहीं है, जो सबसे सामान्यीकृत पार्सर जनरेटर के लिए एक आवश्यकता है। –

+0

@ बेन: हालांकि अधिकांश पार्सर जेनरेटर के संबंध में यह काफी सटीक है, कुछ ऐसे हैं जो सी ++ को संभालने में सक्षम होना चाहिए। मुझे लगता है कि कुछ सी ++ जीएलआर व्याकरण की कुछ (कुछ) बाधाओं के भीतर फिट होना चाहिए। कुछ जनरेटर जीएलआर व्याकरण (उदाहरण के लिए, एखाखाउंड) से निपट सकते हैं। –

6

फ्रंट-एंड/बैकएंड के साथ जीसीसी कंपाइलर सूट का उपयोग करता है? क्या इसमें किसी अन्य कंपाइलर के साथ सामान्य विरासत है?

परिवर्णी शब्द "जीसीसी" "जीएनयू संकलक संग्रह" के लिए खड़ा है (मूलतः "GNU सी संकलक") और यह पहले से ही एक संकेत देता है: जीएनयू संकलक सी और सी के लिए, एक संग्रह compilers के हैं सबसे विशेष रूप से ++ लेकिन फोरट्रान, उद्देश्य-सी और अन्य के लिए भी। वे एक सामान्य बैक एंड एंड इंटरमीडिएट प्रतिनिधित्व साझा करते हैं जो विशेष रूप से जीसीसी के लिए विकसित किया गया था।

फ्रंट-एंड सभी जीसीसी के लिए लिखे गए हैं। कुछ लोगों ने तीसरे पक्षों द्वारा योगदान दिया, विशेष रूप से उद्देश्य-सी फ्रंट-एंड, जिसे ऐप्पल ने योगदान दिया था।

7

Clang परियोजना C/C++/उद्देश्य LLVM बैकएंड के शीर्ष पर सी के लिए नए सामने समाप्त होता है प्रदान करता है। एलएलवीएम प्रोजेक्ट जीसीसी फ्रंट एंड और एलएलवीएम बैकएंड का उपयोग करके एलएलवीएम-जीसीसी भी प्रदान करता है। DragonEgg प्रोजेक्ट एलसीसीवी के साथ जीसीसी बैकएंड को प्रतिस्थापित करना चाहता है।

Codeplay VectorC, चलनी और Offload compilers एक कस्टम सामने के अंत का उपयोग करें और बैक-एंड इसके IntelliSense इंजन के लिए