2008-09-22 22 views
23

मैं समझता हूं कि तोता एक आभासी मशीन है, लेकिन मुझे लगता है कि मैं इसके पीछे विचार को पूरी तरह से समझ नहीं रहा हूं।तोते क्या है?

जैसा कि मैं समझता हूं, यह एक वर्चुअल मशीन है जिसे कई भाषाओं को संभालने के लिए बनाया जा रहा है। क्या ये सही है?

केवल एक दुभाषिया की बजाय वर्चुअल मशीन का उपयोग करने के क्या फायदे हैं?

तोते क्या कर रहे हैं यह इतना बड़ा सौदा करता है?

उत्तर

13

तोता एक बाइटकोड दुभाषिया है (संभवतः भविष्य में एक जेआईटी के साथ)। जावा और इसकी वर्चुअल मशीन को सोचें, सिवाय इसके कि जावा स्थिर है (फिलहाल) स्थिर भाषाओं की ओर अधिक तैयार है, और तोते शुरुआत से गतिशील भाषाओं की दिशा में तैयार है।

कोडी का उत्कृष्ट उत्तर भी देखें! अत्यधिक सिफारिशित।

+0

एक और आयात के साथ खुला स्रोत प्रोग्रामिंग के लिए वास्तविक मानक बन जाएगा उल्लेख करने के लिए चींटी बिंदु यह है कि तोता जेवीएम और सीएलआर के विपरीत, स्टैक-आधारित के पंजीकृत-आधारित इंटीड है। यह सिद्धांत रूप में अनुकूलन को आसान बना सकता है क्योंकि हमारे पास रजिस्टर-आधारित सिस्टम के साथ अधिक अनुभव है। –

+0

कोडी: आपको इसे पोस्ट करना चाहिए ताकि मैं आपकी टिप्पणी +1 कर सकूं। :-) –

+0

असल में तोते के पास x86 सिस्टम कम से कम थोड़ी देर के लिए जिट था। –

21

क्रिस ने उपयोगकर्ता के सामने आने वाले मतभेदों को कवर किया, इसलिए मैं दूसरी तरफ कवर करूंगा।

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

36

Parrot एक वर्चुअल मशीन है जो विशेष रूप से कई भाषाओं, विशेष रूप से गतिशील भाषाओं को संभालने के लिए डिज़ाइन की गई है। इसमें शामिल कुछ रोचक तकनीक के बावजूद, क्योंकि यह एक से अधिक भाषाओं को संभाल सकता है, यह भाषा सीमाओं को पार करने में सक्षम होगा। उदाहरण के लिए, एक बार यह रूबी, पर्ल और पायथन को संकलित कर सकता है, तो मुझे पाइथन से एक पर्ल लाइब्रेरी, पाइथन में रुबी लाइब्रेरी का उपयोग करने के लिए उन सीमाओं को पार करना आसान होना चाहिए, इसलिए जो भी संयोजन मुझे पसंद है।

तोता पर्ल दुनिया में शुरू हुई और इस पर काम करने वाले बहुत से लोग पर्ल लोगों का अनुभव कर रहे हैं। वर्तमान पर्ल दुभाषिया का उपयोग करने के बजाय, जो इसकी उम्र दिखा रहा है, तोते पर्ल को वितरित करने योग्य पूर्व-संकलित मॉड्यूल (जो हर किसी के पास लंबे समय तक था) और एक स्मार्ट कचरा कलेक्टर जैसी सुविधाएं प्रदान करने की अनुमति देता है।

+1

पर्ल समुदाय के एक सदस्य से अच्छी प्रतिक्रिया के लिए धन्यवाद! मेरे पास कोई वोट नहीं छोड़ा गया था, लेकिन एक दिन जब दिन खत्म हो जाता है (15 मिनट के समय में) मैं आपको वोट दूंगा। :-) –

+0

पर्ल के पास लंबे समय तक वितरित पूर्व-संकलित मॉड्यूल थे; उन्होंने अभी तक कभी नहीं पकड़ा (काफी हद तक क्योंकि वे संकलित कोड के इन-मेमोरी प्रारूप का सिर्फ एक डंप हैं, इसलिए वे इतने बड़े हो जाते हैं कि उन्हें डिस्क से लोड करने का समय उस समय से अधिक हो सकता है जब यह पर्ल ले जाएगा उन्हें स्रोत कोड से पुन: उत्पन्न करें) – ysth

+0

जो मुझे याद है, उससे पीएमसी ने कुछ स्थितियों में भी काम किया है। मैंने उन्हें कभी नहीं खोजा क्योंकि मुझे उन्हें जल्दी तोड़ना याद है। हालांकि मैं विवरण भूल गया। –

8

दूसरों ने उत्कृष्ट उत्तर दिए हैं, इसलिए मेरे लिए क्या बनी हुई है कि "गतिशील" भाषाओं का वास्तव में क्या अर्थ है।

वर्चुअल मशीन के संदर्भ में इसका मतलब है कि एक चर का प्रकार संकलन समय पर ज्ञात नहीं है। "स्थैतिक" भाषाओं में प्रकार (या कम से कम एक मूल वर्ग) संकलन समय पर जाना जाता है, और उस ज्ञान पर कई अनुकूलन बनाते हैं।

दूसरी तरफ गतिशील भाषाओं में आपको पता चलेगा कि एक चर में कंटेनर प्रकार (एक सरणी की तरह) या स्केलर (स्ट्रिंग, संख्या, ...) है, लेकिन आपके पास संकलन समय पर बहुत कम प्रकार की जानकारी है।

एक और विशेषता यह है कि गतिशील भाषा आमतौर पर प्रकार रूपांतरणों को अधिक आसान बनाती हैं, उदाहरण के लिए यदि आप एक स्ट्रिंग का उपयोग किसी संख्या के रूप में करते हैं, तो यह स्वचालित रूप से एक संख्या में परिवर्तित हो जाता है।

तोता इस तरह के संचालन को आसान और तेज़ बनाने के लिए डिज़ाइन किया गया है, और संकलन समय पर प्रकार की जानकारी जानने के बिना अनुकूलन की अनुमति देने के लिए डिज़ाइन किया गया है।

+0

यह केवल प्रकारों के बारे में नहीं है। गतिशील भाषाएं संकलन के बाद आपको विभिन्न गैर-प्रकार की चीज़ों को फिर से परिभाषित करने की अनुमति देती हैं। –

2

यहां Official Parrot Wiki है।

आप वहां बहुत सारी जानकारी और लिंक पा सकते हैं।

तोता विकी होम पेज के नीचे भी Planet Parrot फ़ीड एग्रीगेटर से नवीनतम शीर्षकों को प्रदर्शित करता है।

वीएम के अतिरिक्त, तोता परियोजना मौजूदा भाषाओं को बंदरगाह करना आसान बनाने या नए विकसित करने के लिए एक बहुत ही शक्तिशाली टूल श्रृंखला का निर्माण कर रही है।

तोता वीएम कई शक्तिशाली नई पर्ल 6 सुविधाओं के लिए अन्य भाषाओं को कवर-कवर समर्थन भी प्रदान करेगा (कृपया अधिक पर्ल 6 जानकारी के लिए Official Perl 6 Wiki देखें)।

तोता अलग-अलग भाषाओं के मॉड्यूल के बीच अंतःक्रियाशीलता प्रदान करेगा, उदाहरण के लिए, अन्य भाषाओं का लाभ उठा सकता है कि सीपीएएन का विशाल पर्ल 6 संस्करण (विशाल पर्ल 5 मॉड्यूल संग्रह, जो पर्ल 6 सक्षम हो जाएगा आगामी पर्ल 5.12 के माध्यम से उपयोग)।

1

ईमानदारी से, मुझे नहीं पता था कि यह एक सौदा बड़ा था। यह एक लंबा सफर तय किया है, लेकिन बहुत अधिक उपयोग नहीं देख रहा है। मुख्य लक्ष्य भाषा अभी तक पहुंचने के लिए अभी तक पहुंच गई है, और उद्योग पेशेवरों के बीच एक बड़ा दिमागी हिस्सा खो गया है। इस बीच, अन्य समाधान जैसे नेट और प्रोजेक्ट्स जेथॉन हमें दिखाते हैं कि यहां और अब किसी भी कथित प्रचार को हरा सकते हैं।

1
  • तोता क्या करने के उद्देश्य से किया जाएगा जावा लेकिन कभी हासिल - सभी ओएस और प्लेटफार्मों
  • तोता माइक्रोसॉफ्ट के साझा भाषा क्रम के पीछे एक विचार किसी भी गतिशील भाषा के लिए और सही मायने में पार मंच
  • को लागू करेगा के लिए एक वीएम
  • सब कुछ तोता के शीर्ष पर है और स्वतंत्र और खुला स्रोत
  • तोता गतिशील भाषाओं