स्क्रिप्टिंग भाषा बनाम प्रोग्रामिंग भाषा


347

क्या कोई स्क्रिप्टिंग लैंग्वेज और प्रोग्रामिंग लैंग्वेज के बीच का अंतर बता सकता है?
आप प्रत्येक के लिए कुछ उदाहरण भी बता सकते हैं। मैंने गॉगल बहुत किया है लेकिन मुझे हमेशा स्टैक ओवरफ्लो से सबसे अच्छे उत्तर मिलते हैं।

जवाबों:


466

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

उदाहरण के लिए, सामान्य स्थिति में, आपको इसे चलाने से पहले C प्रोग्राम को संकलित करना होगा। लेकिन सामान्य स्थिति में, आपको इसे चलाने से पहले एक जावास्क्रिप्ट प्रोग्राम संकलित करने की आवश्यकता नहीं है। इसलिए जावास्क्रिप्ट को कभी-कभी "स्क्रिप्टिंग" भाषा कहा जाता है।

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

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

"स्क्रिप्टिंग" भाषाओं के कुछ उदाहरण (उदाहरण के लिए, पारंपरिक रूप से स्पष्ट संकलन चरण के बिना उपयोग की जाने वाली भाषाएँ ):

  • लुआ
  • जावास्क्रिप्ट
  • VBScript और VBA
  • पर्ल

और पारंपरिक रूप से एक स्पष्ट संकलन कदम के साथ लोगों की एक छोटी सी चापलूसी :

  • सी
  • सी ++
  • डी
  • जावा (लेकिन ध्यान दें कि जावा को बायटेकोड के लिए संकलित किया गया है, जिसे फिर व्याख्या की जाती है और / या रनटाइम पर पुन: संकलित किया जाता है)
  • पास्कल

... और फिर आपके पास पायथन जैसी चीजें हैं जो दोनों शिविरों में बैठती हैं: पायथन व्यापक रूप से एक संकलन चरण के बिना उपयोग किया जाता है, लेकिन मुख्य कार्यान्वयन (सीपीथॉन) करता है कि बाय-बायोडेक को संकलित करके और फिर बायोटेक को एक में चलाकर वीएम, और यह लिख सकता है कि फाइल को वापस करने के लिए उपयोग के लिए फाइल ( .pyc, .pyo) को बायटेकोड।

यह सिर्फ एक बहुत कम है, अगर आप कुछ शोध करते हैं तो आप बहुत अधिक पा सकते हैं।


1
बहुत बढ़िया स्पष्टीकरण!
ग्लेडिएटर

48
@ mg30rg: Heh - स्क्रिप्टिंग पूरी तरह से "वास्तविक" प्रोग्रामिंग हो सकती है। (आपको विश्वास है कि मैंने जो कुछ बैश स्क्रिप्ट देखी है ...) मुझे लगता है कि इसे परिभाषित करने का सबसे सरल तरीका है (और फिर, यह भाषा की बात नहीं है, यह पर्यावरण की बात है): क्या रनटाइम वातावरण स्रोत कोड देखें? यदि हां, तो मुझे लगता है कि "स्क्रिप्टिंग;" यदि नहीं, तो मैं नहीं करूंगा। तो उस अर्थ में, ब्राउज़र-आधारित जावास्क्रिप्ट "स्क्रिप्टिंग" है, क्योंकि भले ही V8 जैसे इंजन इसे ऑन-द-फ्लाई संकलित करते हैं, फिर भी स्रोत रनटाइम वातावरण में वितरित किया जाता है। इसी तरह से स्क्रिप्ट्स। एक पारंपरिक सी कार्यक्रम का स्रोत रनटाइम तक नहीं पहुंचाया जाता है।
TJ क्राउडर

2
@ mg30rg: लेकिन फिर, इन लाइनों को हर समय धुंधला हो रहा है। :-) जावा बायटेकोड पर विचार करें। आप इसे JVM के बिना नहीं चला सकते, लेकिन यह सोर्स कोड नहीं है। (यह आमतौर पर एक डिकंपाइलर द्वारा उचित दिखने वाले स्रोत कोड में वापस किया जा सकता है, लेकिन ...) मैं एक स्क्रिप्टिंग भाषा के रूप में पारंपरिक वातावरण में जावा के बारे में नहीं सोचता (दूरस्थ)। लेकिन फिर, मैं भी श्रेणियों के बारे में सोचने में बहुत समय खर्च नहीं करता हूं। :-)
टीजे क्राउडर

2
@ CME64: नहीं, मुख्य कार्यान्वयन (सीपीथॉन) मक्खी पर बायटेकोड को संकलित करता है और एक वीएम में बाईटेकोड चलाता है। जबकि पायथन-टू-सी उपकरण (साइथन और पायरेक्स) हैं, यह आमतौर पर नहीं है कि पायथन कैसे चलाया जाता है।
टीजे क्राउडर

2
@ Vityata की रक्षा के लिए, VBScript को नोटपैड में लिखा गया है और टेक्स्ट इनपुट के रूप में व्याख्या की गई है, जबकि VBA कोड को P-Code में संकलित किया जाता है, जैसा कि आप इसे संपादक में टाइप करते हैं , अर्थात जब आप कोड की एक पंक्ति को संशोधित करने के बाद स्रोत कोड को संपादक में देखते हैं, वह कोड नहीं है जिसे आपने टाइप किया है, लेकिन VBE के अंतर्निहित P- कोड का प्रतिपादन : VBA बनाम VBScript के यांत्रिकी पूरी तरह से और पूरी तरह से अलग हैं, और उन्हें उस सूची में एक साथ lumping बस बिल्कुल भी सही नहीं लगता है। VBA VB6 की तुलना में VB6 के बहुत करीब है; यह केवल एक स्पष्ट प्रतिबंध है जो इसे स्टैंडअलोन निष्पादन योग्य बनाने से रोकता है।
मथिउ गुइंडन

103

एक स्क्रिप्टिंग भाषा और एक प्रोग्रामिंग भाषा के बीच अंतर को समझने के लिए, किसी को यह समझना होगा कि स्क्रिप्टिंग भाषाओं का जन्म क्यों हुआ।

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

एक स्क्रिप्टिंग भाषा आमतौर पर संकलित नहीं की जाती है, जैसे ही आप कुछ सार्थक लिख सकते हैं। इसलिए एक्सेल C ++ का उपयोग करके बनाया जा सकता है, लेकिन यह उपयोगकर्ताओं को कार्यक्षमता को परिभाषित करने के लिए VBA नामक एक स्क्रिप्टिंग भाषा को उजागर करता है। इसी तरह ब्राउज़रों का निर्माण C ++ / Java के साथ किया जा सकता है लेकिन वे एक स्क्रिप्टिंग भाषा को उजागर करते हैं जिसे जावास्क्रिप्ट (किसी भी तरह से जावा से संबंधित नहीं) कहा जाता है। खेल, आमतौर पर C ++ के साथ बनाए जाते हैं, लेकिन कस्टम कार्यक्षमता को परिभाषित करने के लिए उपयोगकर्ताओं के लिए Lua नामक भाषा को उजागर करते हैं।

एक स्क्रिप्टिंग भाषा आमतौर पर कुछ प्रोग्रामिंग भाषा के पीछे बैठती है। स्क्रिप्टिंग भाषाओं में आमतौर पर कंप्यूटर की मूल क्षमताओं तक कम पहुंच होती है क्योंकि वे मूल प्रोग्रामिंग भाषा के सबसेट पर चलती हैं। यहां एक उदाहरण यह है कि जावास्क्रिप्ट आपके फ़ाइल सिस्टम तक नहीं पहुंच पाएगा। स्क्रिप्टिंग भाषाएं आमतौर पर प्रोग्रामिंग भाषाओं की तुलना में धीमी होती हैं।

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

अंत में, स्क्रिप्टिंग भाषाओं को प्रोग्रामिंग भाषा भी माना जाता है (हालाँकि कुछ लोग इसे स्वीकार करने से इंकार करते हैं) - हमें यहाँ जिस शब्द का प्रयोग करना चाहिए वह है भाषाओं को संकलित करना बनाम संकलित करना।


4
क्या आपको नहीं लगता कि आपका मतलब है: "व्याख्या की गई भाषाओं बनाम संकलित भाषाओं" के बजाय "स्क्रिप्टिंग भाषाओं बनाम संकलित भाषाओं" ??
बिट्सपिएन

6
"यहाँ एक उदाहरण है कि जावास्क्रिप्ट आपके फ़ाइल सिस्टम तक नहीं पहुँच पाएगा", नोडेज्स कहते हैं
मोहम्मद

@ मोहम्मद नोडजेएस एक रनटाइम है जो कोडर्स को जावास्क्रिप्ट के लिए कोडिंग के लिए "भाषा" के रूप में उपयोग करने की अनुमति देता है। NodeJS 100% जावास्क्रिप्ट नहीं है।
जेफहन

65

सभी स्क्रिप्टिंग भाषाएं प्रोग्रामिंग लैंग्वेज हैं।

भाषाओं को स्क्रिप्ट के रूप में वर्गीकृत नहीं किया गया है या नहीं - यह पूरी तरह से निष्पादन पर्यावरण पर निर्भर करता है।

यदि पर्यावरण की व्याख्या की जाती है, तो इसे आमतौर पर स्क्रिप्टिंग पर्यावरण के रूप में संदर्भित किया जाता है।


18

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

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


12

प्रोग्रामिंग भाषा: मशीन कोड के लिए संकलित है और अंतर्निहित ऑपरेटिंग सिस्टम के हार्डवेयर पर चलती है।

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

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


10

स्क्रिप्टिंग भाषाएं प्रोग्रामिंग भाषाओं का एक सबसेट हैं।

  1. स्क्रिप्टिंग भाषाओं को मशीन कोड के लिए उपयोगकर्ता (अजगर, पर्ल, शेल, आदि) द्वारा संकलित नहीं किया जाता है। बल्कि, एक अन्य कार्यक्रम (जिसे दुभाषिया कहा जाता है, कार्यक्रम चलाता है और उसके व्यवहार का अनुकरण करता है)
  2. कुछ प्रोग्रामिंग भाषाएं जो स्क्रिप्टिंग नहीं हैं (C, C ++, Haskell, और अन्य 'संकलित' भाषाएं), मशीन कोड के लिए संकलित की जाती हैं, और बाद में चलती हैं।

5

मुझे लगता है कि जिसे आप "अंतर" के रूप में बता रहे हैं, वह वास्तव में वास्तविक अंतर का परिणाम है।

वास्तविक अंतर लिखित कोड का लक्ष्य है। इस कोड को कौन चलाने वाला है।

एक स्क्रिप्टिंग भाषा का उपयोग कोड लिखने के लिए किया जाता है जो एक सॉफ्टवेयर सिस्टम को लक्षित करने वाला है। यह उस सॉफ्टवेयर सिस्टम पर परिचालन को स्वचालित करने जा रहा है। स्क्रिप्ट लक्ष्य सॉफ़्टवेयर सिस्टम के निर्देशों का अनुक्रम होने जा रहा है।

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

बेशक, एक वास्तविक मशीन केवल बाइनरी कोड को समझती है, इसलिए आपको एक प्रोग्रामिंग भाषा के कोड को संकलित करने की आवश्यकता है। लेकिन यह एक कार्यक्रम के बजाय मशीन को लक्षित करने का एक परिणाम है।

दूसरी ओर, किसी स्क्रिप्ट का लक्ष्य सॉफ़्टवेयर सिस्टम कोड को संकलित कर सकता है या उसकी व्याख्या कर सकता है। सॉफ्टवेयर सिस्टम तक है।

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

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

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


5

वापस जब दुनिया युवा थी और पीसी दुनिया में आपने .exe या .bat से चुना था, तो परिसीमन सरल था। यूनिक्स सिस्टम में हमेशा शेल स्क्रिप्ट (/ बिन / श, / बिन / csh, / बिन / ksh, आदि) और संकलित भाषाएं (C / C ++ / Fortran) होती हैं।

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

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

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

इस जवाब का श्रेय जेरोल्ड (जैरी) हेमैन को जाता है। मूल धागा: https://www.researchgate.net/post/Is_Python_a_Programming_language_or_Scripting_Language


4

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

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

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

नीचे पंक्ति: भाषा का चयन कार्य की प्रकृति पर निर्भर करता है कि भाषा का प्रदर्शन करना और भेदभाव करना भाषा के रूप में स्क्रिप्टिंग एक मिथक है।


4

लिपिबद्ध भाषाएँ

स्क्रिप्टिंग भाषाओं की व्याख्या दूसरे कार्यक्रम के भीतर की जाती है। जावास्क्रिप्ट एक ब्राउज़र के भीतर एम्बेडेड है और उस ब्राउज़र द्वारा व्याख्या की जाती है।

स्क्रिप्टिंग भाषाओं के उदाहरण

  1. जावास्क्रिप्ट
  2. पर्ल
  3. अजगर

स्क्रिप्टिंग भाषाओं के लाभ:

  1. सरल - स्क्रिप्टिंग भाषाओं को प्रोग्रामिंग भाषा की तुलना में लिखना आसान है।

  2. कोड की कुछ लाइनें (LOC)

प्रोग्राम की गई भाषाएं

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

प्रोग्रामिंग भाषाओं का उदाहरण है

  1. सी
  2. सी ++ और
  3. जावा

अधिक जानकारी


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

4

स्क्रिप्टिंग भाषाओं में जैसे (जावास्क्रिप्ट और पुराने PHP संस्करण) हम अपनी नौकरी करने के लिए मौजूदा मौलिक कार्यों और विधि का उपयोग करते हैं। आइए हम एक उदाहरण लेते हैं जिसमें JavaScriptहम उपयोग कर सकते हैं ajaxया web-socketsकेवल यदि वे ब्राउज़र द्वारा समर्थित हैं या विधियाँ मौजूद हैं या ब्राउज़र में हैं। लेकिन सी या सी ++ जैसी भाषाओं में, जावा हम उस सुविधा को स्क्रैच से लिख सकते हैं, भले ही उस सुविधा के लिए कोई लाइब्रेरी उपलब्ध न हो, लेकिन हम जावास्क्रिप्ट में ऐसा नहीं कर सकते।

क्या आप इंटरनेट एक्सप्लोरर 8 में वेब-सॉकेट का समर्थन कर सकते हैं या जावास्क्रिप्ट की मदद से पहले लेकिन आप सी या सी ++ या जावा में एक प्लगइन लिख सकते हैं जो इंटरनेट एक्सप्लोरर 8 में वेब-सॉकेट की सुविधा जोड़ सकता है।

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

PHP यह वह भाषा है जो कुछ हद तक b / w प्रोग्रामिंग और स्क्रिप्टिंग है। हम किसी अन्य उच्च स्तरीय भाषा में लिखे संकलित एक्सटेंशन को जोड़कर नए तरीके जोड़ सकते हैं। हम सीधे PHP में नेटवर्किंग या इमेज प्रोसेसिंग लाइब्रेरी बनाने की उच्च स्तरीय सुविधाओं को नहीं जोड़ सकते हैं।

PS मुझे वास्तव में PHP जावास्क्रिप्ट के आसपास अपने उत्तर को बदलने के लिए खेद है, लेकिन मैं इन दोनों का उपयोग करता हूं क्योंकि मुझे इन दोनों में काफी अनुभव है।


3

अंतर के अलावा स्क्रिप्टिंग भाषा की व्याख्या की जाती है और प्रोग्रामिंग भाषा को संकलित किया जाता है, नीचे एक और अंतर है, जो मुझे लगता है कि याद किया गया है ..

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

जबकि स्क्रैच से सिस्टम को कोड करने के लिए आम तौर पर एक प्रोग्रामिंग लैंग्वेज का उपयोग किया जाता है।

src ईसीएमए


2

अगर हम तार्किक रूप से प्रोग्रामिंग भाषा और स्क्रिप्टिंग भाषा देखते हैं तो यह 99.09% समान है। क्योंकि हम लूप, कंट्रोल कंडीशन, वैरिएबल और समान अवधारणा का उपयोग करते हैं, इसलिए हम कह सकते हैं कि दोनों समान हैं, लेकिन उनके बीच केवल एक चीज अलग है जो C / C ++ में है और अन्य प्रोग्रामिंग भाषा जिसे हम निष्पादन से पहले कोड संकलित करते हैं। लेकिन PHP, जावास्क्रिप्ट और अन्य स्क्रिप्टिंग भाषा में हमें सीधे ब्राउज़र में निष्पादित करने के लिए संकलन करने की आवश्यकता नहीं है।

धन्यवाद नीतीश के झा


2

स्क्रिप्टिंग लैंग्वेज प्रोग्रामिंग लैंग्वेज हैं जिन्हें लोग स्क्रिप्टिंग लैंग्वेज मानते हैं। यह एक कृत्रिम श्रेणी है जिसमें कोई स्पष्ट सीमा नहीं है, और जहां हर प्रस्तावित नियम में एक अपवाद है।

शास्त्रीय नियम कहते थे कि एक भाषा एक पटकथा भाषा होती है जो परिभाषित करती है, परिभाषित नहीं। यदि कोई भाषा कई नियमों को पूरा करती है, तो एक अच्छा मौका है कि इसे स्क्रिप्टिंग भाषा माना जाए। यदि नहीं, तो अच्छा मौका नहीं है। नियमों में आमतौर पर शामिल हैं:

  • यह छोटे "स्क्रिप्ट" के लिए अभिप्रेत है, बड़े कार्यक्रमों के लिए नहीं।
  • यह दूसरे एप्लिकेशन में एम्बेडेड है, जिसका उपयोग उस एप्लिकेशन के छोटे संशोधनों के लिए किया जाता है।
  • यह संकलित के बजाय व्याख्या की गई है।
  • यह नौसिखिए प्रोग्रामर के लिए है, न कि पेशेवरों के लिए।
  • यह नाम "स्क्रिप्ट" में समाप्त होता है।

मैं जोड़ूंगा:

  • एक स्क्रिप्टिंग भाषा एक प्रोग्रामिंग भाषा है जहां रनटाइम पर लगभग सभी त्रुटियों का पता लगाया जाता है।

अर्थात्, यह एक व्याख्या की गई भाषा हो सकती है।

यदि प्रोग्रामिंग भाषा में महत्वपूर्ण "संकलन-समय" व्यवहार होता है, जहां यह कोड का विश्लेषण करता है और प्रोग्राम को चलाने के बिना त्रुटियों की रिपोर्ट करता है, जैसे C, Java या C # से टाइप त्रुटियां, तो यह सबसे अधिक संभावना है कि इसे स्क्रिप्टिंग भाषा नहीं माना जाता है।

परंपरागत रूप से बहुत सी स्क्रिप्टिंग भाषाओं की व्याख्या सीधे स्रोत से की गई है, लेकिन उनमें से अधिक लोकप्रिय ने अधिक प्रदर्शनकारी कार्यान्वयन प्राप्त किया है जो कोड को precompile करता है, जैसे पायथन की .pycफाइलें, या चलने से पहले मूल कोड को संकलित करने वाले जावास्क्रिप्ट इंजन को अनुकूलित करना।

यदि भाषा को एक दुभाषिया द्वारा कार्यान्वित किया जा सकता है, जो केवल स्रोत कोड को देखता है क्योंकि वह इसे चला रहा है, तो संभवतः इसे एक स्क्रिप्ट भाषा माना जाता है। क्या यह वास्तव में लागू किया गया है कि यह तरीका महत्वपूर्ण नहीं है, लेकिन यदि यह हो सकता है, तो इसे कोड के व्यापक संकलन-समय त्रुटि की भी आवश्यकता नहीं हो सकती है।

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

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

बेसिक भी एक पुरानी प्रोग्रामिंग लैंग्वेज है, जैसे कि COBOL और फोरट्रान, एक भाषा से लोगों द्वारा स्थैतिक विश्लेषण की उम्मीद करने से पहले, और मूल रूप से "स्क्रिप्टिंग लैंग्वेज" से पहले भी एक बात थी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.