एलएलवीएम की तुलना C- कैसे करता है?



compiler-construction code-generation (1)

वे इस बात में भिन्न हैं कि निम्न स्तर की मशीन प्रकार प्रणाली कितनी स्पष्ट है।

LLVM मशीन बहुत स्पष्ट है। दूसरी ओर C-- मशीन, भाषा के मोर्चे पर बहुत जिम्मेदारी डालती है। C-- FAQ से उद्धृत: "बस, C-- का कोई उच्च-स्तरीय प्रकार नहीं है --- यह पूर्णांक चर से फ़्लोटिंग-पॉइंट वैरिएबल को भी अलग नहीं करता है। यह मॉडल प्रतिनिधित्व और प्रकार प्रणाली के फ्रंट एंड टोटल कंट्रोल देता है।"

साथ ही नेत्रहीन वे बहुत अलग दिखते हैं। C-- सी की तरह दिखता है, C-- कोडांतरक की तरह दिखता है।

व्यावहारिक रूप से, एलएलवीएम में अभी बहुत अधिक गति है। इसमें JIT कंपाइलर है, Apple इसे 3D पाइपलाइन चीजों के लिए उपयोग कर रहा है और लोग इसका उपयोग GCC और सभी प्रकार की weird और अद्भुत चीजों से जुड़ने के लिए कर रहे हैं। किसी ने इसे " लगभग बेतुका आसान काम के साथ " कहा।

दूसरी ओर C-- बहुत छोटा है और शायद पूरी तरह से समझने में आसान है। (मुझे लगता है कि कुछ समर्पण के साथ एक सामान्य व्यक्ति पूरी तरह से इसके सभी पहलुओं को समझ सकता है।)

एलएलवीएम कैसे काम करता है, इसके बारे में थोड़ा जानने के बाद, मैं वास्तव में उत्साहित हूं कि पोर्टेबल निम्न-स्तरीय कोड कैसे उत्पन्न किया जा सकता है और इस 'चीज़' को कैसे बनाया जाता है।

लेकिन मैंने आज C-- के अस्तित्व की खोज की जो लगता है कि LLVM के साथ कुछ अवधारणाओं को साझा करता है।

इसलिए मुझे कुछ जानकारी की तलाश है जो मुझे इन दो परियोजनाओं के बीच मुख्य अंतर को समझने में मदद करें ... और दोनों क्यों मौजूद हैं।

मेरे लिए LLVM कंपाइलर इन्फ्रास्ट्रक्चर के लिए परम स्विस आर्मी चाकू की तरह दिखता है, और C-- बहुत कम उन्नत दिखता है।





c-minus-minus