क्या, कुछ भाषाओं के विकास LLVM/तोता से कुछ के साथ कुछ अनुकूलित तकनीकों के लिए उदाहरण के लिए अजगर में समस्या है।LLVM, तोता, JVM, PyPy + अजगर
PyPy, LLVM, तोता साझा मंच के विकास के लिए मुख्य प्रौद्योगिकियों हैं।
मैं इस तरह देखें:
- PyPy - ढांचा वी एम का निर्माण के साथ अनुकूलित वीएम में अजगर
तो यह काफी सामान्य समाधान के लिए बनाने के लिए। > - PyPy दृश्यपटल - ->
- PyPy आंतरिक कोड - बाईटकोड ->
- PyPy अनुकूलन ->
- छोड़ने PyPy कोड और
- dynamic_language_code: प्रक्रिया के रूप में नीचे सूचीबद्ध हो जाता है :
ए। कुछ वी एम के लिए PyPy बैकएंड (JVM) की तरह
ज। som किट बनाने के लिए खुद वीएम
सी। प्रसंस्करण/चल PyPy आंतरिक कोड
- dynamic_language_code: प्रक्रिया के रूप में नीचे सूचीबद्ध हो जाता है :
I Am सही इस प्रक्रिया के बारे में? पाइथन के लिए अनुकूलित वीएम है? जो अजगर और हर भाषा संसाधन वहाँ बंद करो और यह द्वारा चल रहा हो सकता है के लिए है - विशेष रूप से डिफ़ॉल्ट रूप से वहाँ अनुकूलित PyPy कोड (कदम 5.c) के लिए वी एम में निर्माण किया जाता है?
- तोता - बहुत PyPy की तरह है, लेकिन 5.a और 5.b बिना? गतिशील प्रसंस्करण के लिए कुछ आंतरिक सुधार (तोता जादू कुकीज़)।
दोनों तोता और PyPy एक मंच है जो एक आम गतिशील भाषाओं क्रम बनाने बनाने के लिए तैयार कर रहे हैं, लेकिन PyPy अधिक चाहता है - यह भी अधिक वीएम बनाने के लिए।
पीपीपी की भावना कहां है? अधिक वीएम बनाने के लिए हमें क्या चाहिए? एक वीएम (तोता में की तरह) पर ध्यान केंद्रित करने के लिए बेहतर नहीं होना चाहिए - क्योंकि सामान्य कोड कोड होता है - या तो पीपीपी आंतरिक बाइटकोड या तोता वाले। मुझे लगता है कि हम पीपीपी वीएम के साथ नए बनाए गए पीपीपी बाइटकोड में अनुवाद करने के लिए बेहतर कुछ नहीं हासिल कर सकते हैं।
- LLVM - मैं इस बहुत PyPy के लिए, लेकिन वीएम जनरेटर के बिना समान देखते हैं। LLVM है सामान्य उपयोग:
यह परिपक्व, (वी एम जनरेटर के बिना लेकिन), लेकिन निम्न स्तर संरचना और महान अनुकूलन/JIT तकनीक पर काम कर रहा
implemeted PyPy के रूप में समान लक्ष्य के साथ अच्छी तरह से डिजाइन वातावरण इस रूप में देखते हैं है , लेकिन तोते और ** पापी * गतिशील भाषाओं के लिए डिज़ाइन किया गया।PyPy में/तोता कुछ जटिल तकनीक लागू करने के लिए और अधिक आसान है - क्योंकि यह तो LLVM अधिक उच्च स्तर है - कृत्रिम संकलक जो बेहतर उच्च स्तर कोड को समझते हैं और बेहतर कोडांतरक कोड उत्पादन कर सकते हैं की तरह (जो मनुष्य उचित समय में नहीं लिख सकते हैं) तो, एलएलवीएम एक?
सवाल:
क्या मैं सही हूँ? क्या कोई कारण है कि कुछ गतिशील भाषा को पोर्ट करना बेहतर होगा उदाहरण के लिए तोता?
मैं तोता पर विकास अजगर पर गतिविधि दिखाई नहीं है। क्या ऐसा इसलिए है क्योंकि पाइथन सी एक्सटेंशन तोते पर काम नहीं करते हैं? एक ही समस्या PyPy
में है क्यों अन्य VMs LLVM/तोता को ले जाने के लिए नहीं करना चाहती। जैसे रूबी -> तोते, सीएलआर/जेवीएम -> एलएलवीएम। उनके लिए अधिक परिष्कृत समाधान में जाने के लिए बेहतर नहीं होगा? एलएलवीएम उच्च विकास प्रक्रिया में है और इसमें बड़ी कंपनियों का निवेश है।
मुझे पता है कि समस्या पुन: संकलित हो सकती है, अगर बाइटकोड को बदलने की आवश्यकता है, लेकिन यह अनिवार्य नहीं है - क्योंकि हम पुराने पोर्ट को आजमा सकते हैं नया एक के लिए बाईटकोड, और नए compilers (अब भी कभी भी कम जावा खुद बाईटकोड व्याख्या करने की जरूरत है - तो दृश्यपटल इसकी जांच करें और नया बाईटकोड में अनुवाद कर सकते हैं) नई बाईटकोड उत्पादन?
उदाहरण के लिए एलवीएम के अंदर जेवीएम पुस्तकालयों को जोड़ने के साथ क्या समस्याएं हैं (अगर हम किसी भी तरह जावा/जेवीएम/स्केल को llvm पोर्ट करते हैं)?
तुम मुझे सही कर सकते हैं कि मैं गलत कहीं
कुछ addings हूँ:
- How does Parrot compare to other virtual machines
- What's the benefit of Parrot VM for end-users
- What are the differences between LLVM and java/jvm
=============
स्पष्टीकरण
मैं लगाने की कैसे यह सब सॉफ्टवेयर मिलकर चाहते हैं - और दूसरे के पोर्टिंग के लिए समस्या क्या है।
यह एक * विशाल * प्रश्न है। इसे विभाजित करें, क्योंकि जो लोग इसे देखते हैं उनमें से अधिकांश इसे पढ़ने की भी देखभाल नहीं करेंगे। – Blender
यह बहुत मदद नहीं करता है कि प्रश्न पढ़ने और भ्रमित करने में मुश्किल है। – porgarmingduod
इतना आसान क्यों? रूबिनीस, ज्योथन और जेआरबी, आयरनपीथन, स्पूर, अनलाडेन निगल और कुछ भी जो आप इस सवाल के बारे में सोच सकते हैं। अगर आपको कोई जवाब मिलता है, तो उस पर एक पुस्तक प्रकाशित करने के लिए लेखक के साथ जुड़ें। – TryPyPy