programming-languages - language - स्क्रिप्टिंग लैंग्वेज इन हिंदी




एक भाषा कब एक स्क्रिप्टिंग भाषा माना जाता है? (20)

"एक स्क्रिप्ट वह है जिसे आप अभिनेता देते हैं। एक कार्यक्रम वह है जो आप दर्शकों को देते हैं।" - लैरी वॉल

मुझे सच में नहीं लगता कि अब और अधिक अंतर है। तथाकथित "स्क्रिप्टिंग" भाषाओं को अक्सर संकलित किया जाता है - बस बहुत तेज़, और रनटाइम पर। और कुछ "प्रोग्रामिंग" भाषाओं को रनटाइम पर भी संकलित किया जाता है (जेआईटी के बारे में सोचें) और "संकलन" का पहला चरण वाक्यविन्यास जांच और संसाधन संकल्प है।

उस पर लटकाओ मत, यह वास्तव में महत्वपूर्ण नहीं है।

एक भाषा एक स्क्रिप्टिंग भाषा क्या बनाता है? मैंने सुना है कि कुछ लोग कहते हैं "जब इसे संकलित करने के बजाय व्याख्या किया जाता है"। इससे PHP (उदाहरण के लिए) एक स्क्रिप्टिंग भाषा बन जाएगी। क्या यह एकमात्र मानदंड है? या क्या अन्य मानदंड हैं?

यह भी देखें:


"स्क्रिप्टिंग भाषा" उन अस्पष्ट अवधारणाओं में से एक है जिसका अर्थ कई चीजें हो सकता है। आम तौर पर यह इस तथ्य को संदर्भित करता है कि स्रोत कोड से निष्पादन तक आपको ले जाने वाली एक चरण प्रक्रिया मौजूद है।

उदाहरण के लिए पर्ल में आप करते हैं: perl my_source.pl

उपर्युक्त मानदंडों को देखते हुए PHP एक स्क्रिप्टिंग भाषा है (भले ही आपके पास "संकलन" प्रक्रिया हो, उदाहरण के लिए ज़ेंड एनकोडर का उपयोग स्रोत कोड को "सुरक्षित" करने के लिए करें)।

पुनश्च। अक्सर (लेकिन हमेशा नहीं) स्क्रिप्टिंग भाषाओं का अर्थ है। अक्सर (लेकिन फिर, हमेशा नहीं) स्क्रिप्टिंग भाषाओं को गतिशील रूप से टाइप किया जाता है।


इसके लिए बहुत सारे संभावित उत्तर हैं।

पहला: यह वास्तव में एक स्क्रिप्टिंग भाषा और प्रोग्रामिंग भाषा के बीच अंतर का सवाल नहीं है, क्योंकि एक स्क्रिप्टिंग भाषा एक प्रोग्रामिंग भाषा है। यह एक सवाल है कि कौन से लक्षण कुछ प्रोग्रामिंग भाषा को एक स्क्रिप्टिंग भाषा बनाते हैं जबकि एक और प्रोग्रामिंग भाषा एक पटकथा भाषा नहीं है।

दूसरा: यह कहना मुश्किल है कि XYZ भाषा क्या है, चाहे वह XYZ "स्क्रिप्टिंग", "कार्यात्मक प्रोग्रामिंग", "ऑब्जेक्ट-उन्मुख प्रोग्रामिंग" हो या आप क्या हैं। "कार्यात्मक प्रोग्रामिंग" क्या है, इसकी परिभाषा बहुत स्पष्ट है, लेकिन कोई भी नहीं जानता कि "कार्यात्मक प्रोग्रामिंग भाषा" क्या है।

कार्यात्मक प्रोग्रामिंग या ऑब्जेक्ट उन्मुख प्रोग्रामिंग प्रोग्रामिंग शैलियों हैं ; आप किसी भी भाषा में एक कार्यात्मक शैली या ऑब्जेक्ट उन्मुख शैली में लिख सकते हैं। उदाहरण के लिए, लिनक्स वर्चुअल फाइल सिस्टम स्विच और लिनक्स ड्राइवर मॉडल सी में लिखे जाने के बावजूद भारी ऑब्जेक्ट-ओरिएंटेड हैं, जबकि वेब पर आपके द्वारा देखे जाने वाले बहुत सारे जावा या सी # कोड बहुत ही प्रक्रियात्मक हैं और ऑब्जेक्ट-ओरिएंटेड नहीं हैं। ओटीओएच, मैंने कुछ भारी कार्यात्मक जावा कोड देखा है।

इसलिए, यदि कार्यात्मक प्रोग्रामिंग और ऑब्जेक्ट उन्मुख प्रोग्रामिंग केवल शैलियों हैं जो किसी भी भाषा में की जा सकती हैं, तो आप "ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा" को कैसे परिभाषित करते हैं? आप कह सकते हैं कि ऑब्जेक्ट उन्मुख प्रोग्रामिंग भाषा एक ऐसी भाषा है जो ऑब्जेक्ट उन्मुख प्रोग्रामिंग की अनुमति देती है। लेकिन यह एक परिभाषा का अधिक नहीं है: सभी भाषाएं ऑब्जेक्ट उन्मुख प्रोग्रामिंग की अनुमति देती हैं, इसलिए सभी भाषा ऑब्जेक्ट उन्मुख हैं? तो, आप कहते हैं, अच्छी तरह से एक भाषा ऑब्जेक्ट उन्मुख है, अगर यह आपको ऑब्जेक्ट उन्मुख शैली में प्रोग्रामिंग करने के लिए मजबूर करती है। लेकिन यह एक परिभाषा का अधिक नहीं है, या तो: सभी भाषाएं कार्यात्मक प्रोग्रामिंग की अनुमति देती हैं, इसलिए कोई भाषा वस्तु-उन्मुख नहीं है?

तो, मेरे लिए, मुझे निम्नलिखित परिभाषा मिली है:

एक भाषा एक स्क्रिप्टिंग भाषा (ऑब्जेक्ट उन्मुख भाषा / कार्यात्मक भाषा) है यदि यह दोनों

  • स्क्रिप्टिंग (ऑब्जेक्ट उन्मुख प्रोग्रामिंग / कार्यात्मक प्रोग्रामिंग) की सुविधा प्रदान करता है, यानी यह न केवल इसे अनुमति देता है बल्कि इसे आसान और प्राकृतिक बनाता है और इसमें ऐसी विशेषताएं शामिल हैं जो इसके साथ मदद करती हैं, और
  • आपको स्क्रिप्टिंग (ऑब्जेक्ट उन्मुख प्रोग्रामिंग / कार्यात्मक प्रोग्रामिंग) की ओर प्रोत्साहित करता है और मार्गदर्शन करता है।

तो, पांच पैराग्राफ के बाद, मैं यहां पहुंचा हूं: "एक पटकथा भाषा स्क्रिप्टिंग के लिए एक भाषा है"। क्या एक महान परिभाषा है। नहीं।

जाहिर है, अब हमें "स्क्रिप्टिंग" की परिभाषा को देखने की जरूरत है।

यह वह जगह है जहां तीसरी समस्या आती है: जबकि "कार्यात्मक प्रोग्रामिंग" शब्द अच्छी तरह से परिभाषित किया गया है और यह केवल "कार्यात्मक प्रोग्रामिंग भाषा" शब्द है, दुर्भाग्यवश, स्क्रिप्टिंग के साथ, "स्क्रिप्टिंग" शब्द और शब्द "स्क्रिप्टिंग भाषा" "बीमार परिभाषित हैं।

खैर, सबसे पहले स्क्रिप्टिंग प्रोग्रामिंग है। यह सिर्फ एक विशेष प्रकार का प्रोग्रामिंग है। IOW: प्रत्येक स्क्रिप्ट एक कार्यक्रम है, लेकिन हर कार्यक्रम एक स्क्रिप्ट नहीं है; सभी स्क्रिप्ट का सेट सभी कार्यक्रमों के सेट का उचित सबसेट है।

मेरी व्यक्तिगत राय में, वह चीज जो स्क्रिप्टिंग स्क्रिप्टिंग को बनाता है और इसे अन्य प्रकार के प्रोग्रामिंग से अलग करती है, वह है ...

लिपियों ने बड़े पैमाने पर वस्तुओं का उपयोग किया है

  • लिपि द्वारा नहीं बनाए गए थे,
  • स्क्रिप्ट का आजीवन स्वतंत्र है और
  • स्क्रिप्ट के डोमेन के बाहर रहते हैं।

साथ ही, इस्तेमाल किए गए डेटाटाइप और एल्गोरिदम आमतौर पर स्क्रिप्ट द्वारा परिभाषित नहीं होते हैं बल्कि बाहरी वातावरण द्वारा परिभाषित किए जाते हैं।

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

संक्षेप में: एक स्क्रिप्ट स्वयं को एक बड़ी प्रणाली से जोड़ती है जो स्क्रिप्ट से स्वतंत्र रूप से मौजूद होती है, सिस्टम के कुछ छोटे हिस्से में हेरफेर करती है और फिर बाहर निकलती है।

शेल स्क्रिप्ट के मामले में यह बड़ी प्रणाली ऑपरेटिंग सिस्टम हो सकती है, ब्राउजर स्क्रिप्ट के मामले में ब्राउज़र डोम, एक गेम (उदाहरण के लिए लूआना के साथ वॉरक्राफ्ट की दुनिया या लिंडन स्क्रिप्टिंग भाषा के साथ दूसरा जीवन), एक आवेदन (जैसे ऑटोलिस्प ऑटोकैड या एक्सेल / वर्ड / ऑफिस मैक्रोज़ के लिए भाषा), एक वेब सर्वर, रोबोट का एक पैक या पूरी तरह से कुछ और।

ध्यान दें कि स्क्रिप्टिंग पहलू प्रोग्रामिंग भाषाओं के सभी अन्य पहलुओं के लिए पूरी तरह से ऑर्थोगोनल है: एक स्क्रिप्टिंग भाषा दृढ़ता से या कमजोर टाइप की जा सकती है, सख्ती से या ढीली रूप से टाइप की गई, स्थिर या गतिशील रूप से टाइप की गई, नाममात्र रूप से, संरचनात्मक रूप से या बतख टाइप की गई, बिल्ली भी इसे बिना चिपकाया जा सकता है । यह अनिवार्य या कार्यात्मक, वस्तु उन्मुख, प्रक्रियात्मक या कार्यात्मक, सख्त या आलसी हो सकता है। इसके कार्यान्वयन का अर्थ, संकलित या मिश्रित किया जा सकता है।

उदाहरण के लिए, मोंड्रियन एक संकलित कार्यान्वयन के साथ सख्ती से स्थिर रूप से टाइप की गई आलसी कार्यात्मक पटकथा भाषा है।

हालांकि, यह सब मूक है, क्योंकि जिस तरह से वास्तविक दुनिया में शब्द स्क्रिप्टिंग भाषा का उपयोग किया जाता है, उसके ऊपर से किसी के साथ कुछ लेना देना नहीं है। इसे अक्सर अपमान के रूप में उपयोग किया जाता है, और परिभाषा अपेक्षाकृत सरल है, यहां तक ​​कि सरल:

  • वास्तविक प्रोग्रामिंग भाषा: मेरी प्रोग्रामिंग भाषा
  • पटकथा भाषा: आपकी प्रोग्रामिंग भाषा

ऐसा लगता है कि शब्द का अक्सर उपयोग किया जाता है।


एक कठिन प्रोग्रामिंग भाषा में लिखे गए अनुप्रयोगों के लिए स्क्रिप्टिंग भाषाओं को मूल रूप से नियंत्रण तंत्र के रूप में माना जाता था। संकलित कार्यक्रम रनटाइम पर संशोधित नहीं किए जा सकते थे, इसलिए स्क्रिप्टिंग ने लोगों को लचीलापन दिया।

सबसे विशेष रूप से, ओएस कर्नेल (परंपरागत रूप से, मैक पर ऐप्पलस्क्रिप्ट) में शेल स्क्रिप्ट स्वचालित प्रक्रियाएं थीं; एक भूमिका जो अधिक से अधिक पर्ल के हाथों में गुजरती है, और फिर इसे पाइथन में हाल ही में बाहर कर देती है। मैंने योजना (विशेष रूप से इसके गुइल कार्यान्वयन में) को रेट्रैसिंग दृश्य घोषित करने के लिए उपयोग किया है; और हाल ही में, लुआ प्रोग्रामिंग भाषा के रूप में प्रोग्रामिंग भाषा के रूप में बहुत लोकप्रिय है - इस बिंदु पर कि कई नए गेम में एकमात्र हार्ड-कोड वाली चीज ग्राफिक्स / भौतिकी इंजन है, जबकि पूरे गेम तर्क को लुआ में एन्कोड किया गया है। इसी तरह, जावास्क्रिप्ट को वेब ब्राउज़र के व्यवहार को स्क्रिप्ट करने के लिए सोचा गया था।

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

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

अद्यतन: wikipedia सामान्य रूप से उपलब्ध सामग्री को पढ़ना।


एक पटकथा भाषा एक ऐसी भाषा है जो सामानों को करने के लिए अन्य चीजें "स्क्रिप्ट" करती है। प्राथमिक फोकस मुख्य रूप से आपके स्वयं के ऐप्स को उतना ही नहीं बना रहा है जितना आप चाहते हैं कि एक मौजूदा ऐप प्राप्त करने के लिए, जैसे ब्राउज़र के लिए जावास्क्रिप्ट, एमएस ऑफिस के लिए वीबीए।


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


एक स्क्रिप्टिंग भाषा एक ऐसी भाषा है जो किसी मौजूदा प्रोग्राम को कॉन्फ़िगर या विस्तारित करती है।
एक स्क्रिप्टिंग भाषा एक प्रोग्रामिंग भाषा है।


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

प्रत्येक संकलित भाषा को स्क्रिप्ट भाषा में बनाया जा सकता है और इसके विपरीत यह एक दुभाषिया या कंपाइलर को लागू करने पर निर्भर करता है, उदाहरण के तौर पर सी ++ में एक दुभाषिया है, इसलिए इसका इस्तेमाल होने पर इसे स्क्रिप्ट भाषा कहा जा सकता है (सी ++ के रूप में सामान्य रूप से बहुत व्यावहारिक नहीं है एक बहुत जटिल भाषा है), वर्तमान में सबसे उपयोगी स्क्रिप्ट भाषाओं में से एक पायथन है ...

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


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

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

यह स्क्रिप्टिंग भाषाओं के बारे में wikipedia लेख से है:

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

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


पहला बिंदु, एक प्रोग्रामिंग भाषा "स्क्रिप्टिंग भाषा" या कुछ और नहीं है। यह एक "पटकथा भाषा" और कुछ और हो सकता है।

दूसरा बिंदु, भाषा के कार्यान्वयनकर्ता आपको बताएंगे कि यह एक पटकथा भाषा है या नहीं।

आपके प्रश्न को पढ़ना चाहिए "प्रोग्रामिंग भाषा को एक स्क्रिप्टिंग भाषा माना जाएगा?", नहीं, "एक स्क्रिप्टिंग भाषा और प्रोग्रामिंग भाषा के बीच क्या अंतर है?"। बीच में कोई नहीं है।

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


मुझे लगता है कि श्री रॉबर्टो इरुसलिस्की का बहुत अच्छा जवाब है या 'लूआ प्रोग्रामिंग' में सवाल है:

हालांकि, व्याख्या की गई भाषाओं की विशिष्ट विशेषता यह नहीं है कि वे संकलित नहीं हैं, लेकिन कोई संकलक भाषा रनटाइम का हिस्सा है और इसलिए, यह संभव है (और आसान) फ्लाई पर उत्पन्न कोड निष्पादित करना


मेरी परिभाषा एक ऐसी भाषा होगी जो आमतौर पर बाइनरी के बजाय स्रोत के रूप में वितरित की जाती है।


मेरे दोस्त और मुझे बस यह तर्क था: प्रोग्रामिंग भाषा और एक स्क्रिप्टिंग भाषा के बीच क्या अंतर है।

एक लोकप्रिय तर्क यह है कि प्रोग्रामिंग भाषाओं को संकलित किया जाता है और भाषाओं को पटकथाओं का अर्थ दिया जाता है - हालांकि मुझे लगता है कि यह तर्क पूरी तरह गलत है ... क्यों?

  1. चक्र और वी 8 (माइक्रोसॉफ्ट और Google के जावास्क्रिप्ट इंजन) निष्पादन से पहले कोड संकलित करते हैं
  2. क्यूबासिक का अर्थ है - क्या यह कबासिक को "स्क्रिप्टिंग" भाषा बनाता है?

उस आधार पर, यह प्रोग्रामिंग भाषा और एक स्क्रिप्टिंग भाषा के बीच अंतर के लिए मेरा तर्क है:

एक प्रोग्रामिंग भाषा मशीन स्तर पर चलती है और मशीन पर ही पहुंच होती है (मेमोरी, ग्राफिक्स, ध्वनि इत्यादि)।

एक स्क्रिप्टिंग भाषा रेत बॉक्स की जाती है और केवल रेत के बक्से के संपर्क में आने वाली वस्तुओं तक पहुंच होती है। इसकी अंतर्निहित मशीन तक कोई सीधी पहुंच नहीं है।


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

  • पर्ल एक प्रोग्रामिंग भाषा है!
  • पर्ल जावा और सी ++ की तरह संकलित है। यह बस बहुत तेज संकलित है!
  • पर्ल में ऑब्जेक्ट्स और नेमस्पेस और क्लोजर हैं।
  • पर्ल में आईडीई और डिबगर्स और प्रोफाइलर्स हैं।
  • पर्ल में प्रशिक्षण और समर्थन और समुदाय है।
  • पर्ल सिर्फ वेब नहीं है। पर्ल सिर्फ sysadmin नहीं है। पर्ल इंटरनेट का नलिका टेप नहीं है।

हमें जावा जैसी भाषा के बीच अंतर करने की आवश्यकता क्यों है जिसे संकलित किया गया है और रूबी नहीं है? लेबलिंग में क्या मूल्य है?

इस पर अधिक जानकारी के लिए, http://xoa.petdance.com/Stop_saying_script देखें।


यह अश्लील की तरह है, आप इसे देखते समय इसे जानते हैं। एक स्क्रिप्टिंग भाषा की एकमात्र संभावित परिभाषा है:

A language which is described as a scripting language.

थोड़ा परिपत्र, है ना? (वैसे, मैं मजाक नहीं कर रहा हूँ)।

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

मैं अपने पेपर में प्रमुख पटकथा भाषाओं की विशेषताओं का वर्णन करता हूं :

 A Practical Solution for Scripting Language Compilers
 Paul Biggar, Edsko de Vries and David Gregg
 SAC '09: ACM Symposium on Applied Computing (2009), (March 2009)

अधिकांश गतिशील रूप से टाइप और व्याख्या किए जाते हैं, और अधिकांश में उनके संदर्भ कार्यान्वयन के बाहर कोई परिभाषित अर्थशास्त्र नहीं होता है। हालांकि, यहां तक ​​कि यदि उनके बड़े कार्यान्वयन को संकलित या जेआईटीड किया जाता है, तो यह भाषा की "प्रकृति" को नहीं बदलता है।

वे केवल प्रश्न शेष हैं कि आप कैसे बता सकते हैं कि कोई नई भाषा एक स्क्रिप्टिंग भाषा है या नहीं। खैर, अगर इसे एक स्क्रिप्टिंग भाषा कहा जाता है, तो यह एक है। तो Factor एक पटकथा भाषा है (या कम से कम जब लिखा गया था), लेकिन, कहें, जावा नहीं है।


सभी स्क्रिप्टिंग भाषा प्रोग्रामिंग भाषाएं हैं। तो कड़ाई से बोलते हुए, कोई फर्क नहीं पड़ता।

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


सवाल पर थोड़ा अलग लेने के लिए। एक स्क्रिप्टिंग भाषा एक प्रोग्रामिंग भाषा है लेकिन एक प्रोग्रामिंग भाषा एक स्क्रिप्टिंग भाषा नहीं है। एक स्क्रिप्टिंग भाषा का उपयोग सिस्टम को नियंत्रित या स्क्रिप्ट करने के लिए किया जाता है। वह प्रणाली एक ऑपरेटिंग सिस्टम हो सकती है जहां स्क्रिप्टिंग भाषा बाश होगी। सिस्टम PHP के साथ एक वेब सर्वर हो सकता है स्क्रिप्टिंग भाषा। स्क्रिप्टिंग भाषाओं को एक विशिष्ट आला भरने के लिए डिज़ाइन किया गया है; वे डोमेन विशिष्ट भाषाएं हैं। इंटरेक्टिव सिस्टम ने स्क्रिप्टिंग भाषाओं का अर्थ दिया है जो इस धारणा को जन्म देते हैं कि स्क्रिप्टिंग भाषाओं का अर्थ है; हालांकि, यह सिस्टम का नतीजा है न कि स्क्रिप्टिंग भाषा स्वयं।


स्क्रिप्टिंग भाषाएं एक स्क्रिप्टिंग इंजन के भीतर चलती हैं जो एक बड़े आवेदन का हिस्सा है। उदाहरण के लिए, जावास्क्रिप्ट आपके ब्राउज़र स्क्रिप्टिंग इंजन के अंदर चलता है।


A scripting language is a programming language designed for integrating and communicating with other programming languages. You can also say it instructs others to do stuff


I would say scripting language is the one heavily manipulating entities it doesn't itself define. For instance, JavaScript manipulates DOM objects provided by the browser, PHP operates enormous library of C-based functions, and so on. Of course not a precise definition, more a way to think if it.