25

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

धन्यवाद और बाहररूबी एक स्क्रिप्टिंग भाषा या एक व्याख्या की गई भाषा है?

+0

संभावित डुप्लिकेट [क्या रूबी वास्तव में एक व्याख्या की गई भाषा है यदि इसके सभी कार्यान्वयन बाइटकोड में संकलित किए गए हैं?] (Http://stackoverflow.com/questions/717490/is-ruby-really-an-interpreted-language-if इसके सभी कार्यान्वयन-संकलन हैं) – nawfal

उत्तर

37

चीजें सिर्फ काले और सफेद नहीं हैं। कम से कम, वे भी बड़े और छोटे, जोरदार और शांत, नीले और नारंगी, भूरे और भूरे, लंबे और छोटे, दाएं और गलत, आदि

व्याख्या/संकलित भाषाओं को वर्गीकृत करने का एक ही तरीका है, और यह पूरी तरह से स्वतंत्र है (अनगिनत अन्य चीजों के बीच) चाहे आप एक ही भाषा को "स्क्रिप्टिंग भाषा" कहते हैं या नहीं। यह ऊपर बंद करने के लिए, यह भी एक टूटी हुई वर्गीकरण है:

  • व्याख्या/संकलित, भाषा कार्यान्वयन पर निर्भर करता भाषा पर नहीं (यह सिर्फ सिद्धांत नहीं है, वहाँ वास्तव में बहुत है जो दोनों दुभाषिए और compilers के लिए कुछ भाषाएं हैं मौजूद)
  • भाषा कार्यान्वयन (उनमें से बहुत सारे रूबी कार्यान्वयन सहित) हैं कंपाइलर हैं, लेकिन "केवल" बाइटकोड को संकलित करते हैं और बाइटकोड की व्याख्या करते हैं।
  • ऐसे कार्यान्वयन भी हैं जो देशी कोड (जेआईटी कंपाइलर्स) में व्याख्या और संकलन के बीच स्विच करते हैं।

आप देखते हैं, वास्तविकता एक जटिल जानवर है;) रूबी ऊपर वर्णित है, अक्सर संकलित है। उस संकलन के आउटपुट को कम से कम कुछ मामलों में व्याख्या किया जाता है - इसमें कुछ कार्यान्वयन भी होते हैं जो जेआईटी-संकलन (रूबिनीस, और आईआईआरसी जेआरबीई थोड़ी देर के बाद जावा बाइटकोड में संकलित होते हैं)। संदर्भ कार्यान्वयन लंबे समय तक एक कंपाइलर रहा है, और आईआईआरसी अभी भी है। तो रूबी व्याख्या या संकलित है?जब तक आप इसे परिभाषित नहीं करते हैं, तो कोई भी शब्द सार्थक नहीं है;)

लेकिन सवाल पर वापस जाएं: "स्क्रिप्टिंग भाषा" भाषा की संपत्ति नहीं है, यह इस बात पर निर्भर करती है कि भाषा का उपयोग कैसे किया जाता है - यानी, क्या भाषा का उपयोग किया जाता है स्क्रिप्टिंग कार्यों के लिए। यदि आप एक परिभाषा की तलाश में हैं, तो "Scripting language" पर विकिपीडिया पृष्ठ मदद कर सकता है (केवल उन्हें उन क्रियाओं के विवरणों के बारे में भ्रमित न करने दें जैसे कि स्क्रिप्ट आमतौर पर व्याख्या की जाती हैं)। वास्तव में कुछ प्रोग्राम हैं जो स्क्रिप्टिंग कार्यों के लिए रुबी का उपयोग करते हैं, और निस्संदेह कई मुक्त-खड़े रूबी प्रोग्राम हैं जो संभवतः स्क्रिप्ट (वेब ​​स्क्रैपिंग, सिस्टम प्रशासन इत्यादि) के रूप में अर्हता प्राप्त करेंगे।

तो हाँ, मुझे लगता है कि कोई रूबी को एक स्क्रिप्टिंग भाषा कह सकता है। बेशक इसका मतलब यह नहीं है कि रेल वेब ऐप पर रूबी सिर्फ एक स्क्रिप्ट है।

+0

और जावा के बारे में क्या? मुझे लगता है कि मैं इसे एक स्क्रिप्टिंग भाषा परिभाषित नहीं कर सकता क्या यह सच है? क्यूं कर ? धन्यवाद –

+1

@Guiseppe: ठीक है, स्क्रिप्टिंग के लिए जावा का उपयोग करने वाले बहुत कम लोग, इसलिए आम तौर पर इसे एक स्क्रिप्टिंग भाषा नहीं कहा जाता है। बेशक, यदि कुछ एप्लिकेशन स्क्रिप्टिंग के लिए जावा का उपयोग करते हैं, तो जावा वास्तव में उस संदर्भ में स्क्रिप्टिंग भाषा के रूप में योग्य हो सकता है। – delnan

+2

अब एसई में मैंने देखा है कि सबसे विचित्र जवाब था। वह नहीं चाहता था कि आप उसे जीवन सिखाएं, उसके पास रूबी के बारे में कोई सवाल था ... – user832146

3

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

4

हां है।

विस्तृत प्रतिक्रिया:

एक स्क्रिप्टिंग भाषा आम तौर पर अनुप्रयोगों है कि अक्सर इस भाषा में लिखा नहीं कर रहे हैं नियंत्रित करने के लिए प्रयोग किया जाता है। उदाहरण के लिए, खोल स्क्रिप्ट इत्यादि मनमाने ढंग से कंसोल अनुप्रयोगों को कॉल कर सकते हैं।

रूबी एक सामान्य उद्देश्य गतिशील भाषा है जिसे अक्सर स्क्रिप्टिंग के लिए उपयोग किया जाता है।

आप नीचे की तरह बैकटिक नोटेशन का उपयोग करके मनमाने ढंग से सिस्टम कॉल कर सकते हैं।

`<system command>` 

भी वेब और देशी जीयूआई स्वचालित के लिए इस तरह के Watir और RAutomation के रूप में कई उत्कृष्ट रूबी रत्न हैं।

स्क्रिप्टिंग भाषा की परिभाषा के लिए, here देखें।

संबंधित मुद्दे