स्क्रिप्टिंग भाषा: Difference between revisions
(Created page with "{{Short description|Programming language for run-time events}} thumb|जीडीस्क्रिप्ट3.4एक स्क्रिप्टि...") |
No edit summary |
||
(7 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Programming language for run-time events}} | {{Short description|Programming language for run-time events}} | ||
[[File:Gdscript3.4.png|thumb|जीडीस्क्रिप्ट3.4]]एक स्क्रिप्टिंग भाषा या स्क्रिप्ट भाषा एक [[प्रोग्रामिंग भाषा]] है जिसका उपयोग किसी | [[File:Gdscript3.4.png|thumb|जीडीस्क्रिप्ट3.4]]एक स्क्रिप्टिंग भाषा या स्क्रिप्ट भाषा एक ऐसी [[प्रोग्रामिंग भाषा]] है जिसका उपयोग किसी वर्तमान प्रणाली की सुविधाओं में युक्तियोजित करने, अनुकूलित करने और स्वचालित करने के लिए किया जाता है।<ref name="ecma262">{{cite web | url = https://tc39.github.io/ecma262/#sec-overview | title = ECMAScript 2019 Language Specification | access-date = 2018-04-02 | publisher = www.ecma-international.org}}</ref> स्क्रिप्टिंग भाषा सामान्यतः [[ संकलक |संकलक]] के अतिरिक्त [[ रनटाइम (कार्यक्रम जीवनचक्र चरण) |क्रम(निष्पादन जीवनचक्र चरण]]) पर इंटरप्रेटर(कंप्यूटिंग) होती हैं। | ||
स्क्रिप्टिंग भाषा के [[भाषा आदिम|साधारण]] सामान्यतः प्राथमिक कार्य या [[एपीआई]] कॉल होती हैं,{{Clarify|date=April 2019}} और स्क्रिप्टिंग भाषा उन्हें अधिक प्रोग्रामों में संयोजित करने की अनुमति देती है। स्क्रिप्टिंग के माध्यम से स्वचालित किए जा सकने वाले संदर्भ में [[अनुप्रयोग प्रक्रिया सामग्री|एप्लिकेशन सॉफ्टवेयर]], [[ पाठ संपादक |टेक्स्ट एडिटर्स]], [[ वेब पृष्ठ |वेब पृष्ठ]], [[ऑपरेटिंग सिस्टम]] [[ शैल स्क्रिप्ट |शैल स्क्रिप्ट]], [[ अंतः स्थापित प्रणाली |अंतः स्थापित प्रणाली]] और [[कंप्यूटर खेल|कंप्यूटर गेम]] सम्मिलित हैं। किसी विशेष संदर्भ के लिए स्क्रिप्टिंग भाषा को एक [[डोमेन-विशिष्ट भाषा]] के रूप में देखा जा सकता है; किसी एप्लिकेशन को स्क्रिप्ट करने की स्थिति में, इसे एक्सटेंशन भाषा के रूप में भी जाना जाता है। स्क्रिप्टिंग भाषाओं को कभी-कभी [[बहुत उच्च स्तरीय प्रोग्रामिंग भाषा|बहु उच्च स्तरीय प्रोग्रामिंग भाषा]] रूप में भी संदर्भित किया जाता है, क्योंकि वे कभी-कभी उच्च स्तर के अमूर्तता पर या नियंत्रण भाषाओं के रूप में संचालित होती हैं, विशेष रूप से मेनफ्रेम पर कार्य नियंत्रण भाषाओं के लिए। | |||
'स्क्रिप्टिंग | 'स्क्रिप्टिंग भाषा' शब्द का प्रयोग व्यापक अर्थ में भी किया जाता है, अर्थात्, [[गतिशील प्रोग्रामिंग भाषा]] [[उच्च स्तरीय भाषा]] / हाई-लेवल [[सामान्य प्रयोजन प्रोग्रामिंग भाषा|सामान्य उद्देश्य प्रोग्रामिंग भाषा]] सामान्य रूप से संदर्भित करने के लिए; कुछ दृढ़ता से व्याख्या की जाने वाली भाषाएं हैं, जबकि अन्य संकलन के रूप का उपयोग करते हैं। इस संदर्भ में, ''स्क्रिप्ट'' शब्द ऐसी भाषा में छोटे प्रोग्राम को संदर्भित करता है; सामान्यतः, एकल फ़ाइल में समाहित होता है, और कोड की कुछ हज़ार पंक्तियों से बड़ी नहीं होती है। | ||
इस संदर्भ में, ''स्क्रिप्ट'' शब्द ऐसी भाषा में | |||
स्क्रिप्टिंग भाषाओं का | स्क्रिप्टिंग भाषाओं का विस्तार छोटे से लेकर बड़े और अत्यधिक डोमेन-विशिष्ट भाषा से लेकर सामान्य-उद्देश्य वाली प्रोग्रामिंग भाषाओं तक होते है। भाषा छोटी और अत्यधिक डोमेन-विशिष्ट के रूप में प्रारम्भ हो सकती है और बाद में एक पोर्टेबल और सामान्य-उद्देश्य वाली भाषा में विकसित हो सकती है; इसके विपरीत, एक सामान्य-उद्देश्य वाली भाषा बाद में विशेष डोमेन-विशिष्ट उपभाषाओं का विकास कर सकती है। | ||
== उदाहरण == | == उदाहरण == | ||
{{Seealso| | {{Seealso|स्क्रिप्टिंग भाषाओं की सूची}} | ||
* [[AWK]], अधिकांश [[यूनिक्स]] जैसे ऑपरेटिंग सिस्टम में उपलब्ध एक टेक्स्ट-प्रोसेसिंग भाषा है, जिसे अन्य ऑपरेटिंग सिस्टम में पोर्ट किया गया है। | * [[AWK|एडब्ल्यूके]], अधिकांश [[यूनिक्स]] जैसे ऑपरेटिंग सिस्टम में उपलब्ध एक टेक्स्ट-प्रोसेसिंग भाषा है, जिसे अन्य ऑपरेटिंग सिस्टम में पोर्ट किया गया है। | ||
* [[बैश (यूनिक्स शेल)]], यूनिक्स, [[जीएनयू]] और अन्य यूनिक्स जैसे ऑपरेटिंग सिस्टम और | * [[बैश (यूनिक्स शेल)|बैश(यूनिक्स शेल)]], यूनिक्स, [[जीएनयू]] और अन्य यूनिक्स जैसे ऑपरेटिंग सिस्टम और संदर्भ पर उपयोग के लिए एक व्याख्या की गई स्क्रिप्टिंग भाषा। | ||
* [[ ग्रूवी (प्रोग्रामिंग भाषा) ]] जावा प्लेटफॉर्म के लिए एक ऑब्जेक्ट-ओरिएंटेड स्क्रिप्टिंग | * [[ ग्रूवी (प्रोग्रामिंग भाषा) | ग्रूवी(प्रोग्रामिंग भाषा]]) जावा प्लेटफॉर्म के लिए एक ऑब्जेक्ट-ओरिएंटेड स्क्रिप्टिंग भाषा है, जो पायथन(प्रोग्रामिंग भाषा), [[ रूबी (प्रोग्रामिंग भाषा) |रूबी(प्रोग्रामिंग भाषा]]) और स्मॉलटॉक(प्रोग्रामिंग भाषा) के समान है। | ||
* [[एकमा स्क्रिप्ट]] (बाद में: ईसीएमएस्क्रिप्ट), मूल रूप से एक बहुत छोटी, अत्यधिक डोमेन-विशिष्ट भाषा, जो वेब पेज को गतिशील रूप से संशोधित करने के लिए एक वेब ब्राउज़र के भीतर चलने तक सीमित है, जो बाद में व्यापक रूप से पोर्टेबल सामान्य | * [[एकमा स्क्रिप्ट]](बाद में: ईसीएमएस्क्रिप्ट), मूल रूप से एक बहुत छोटी, अत्यधिक डोमेन-विशिष्ट भाषा, जो वेब पेज को गतिशील रूप से संशोधित करने के लिए एक वेब ब्राउज़र के भीतर चलने तक सीमित है, जो बाद में व्यापक रूप से पोर्टेबल सामान्य उद्देश्य प्रोग्रामिंग भाषा में विकसित हुई। | ||
* [[लिस्प (प्रोग्रामिंग भाषा)]], विशिष्ट | * [[लिस्प (प्रोग्रामिंग भाषा)|लिस्प(प्रोग्रामिंग भाषा)]], विशिष्ट एप्लिकेशनों के लिए सामान्य-उद्देश्य वाली भाषाओं और एक्सटेंशन भाषाओं का एक वर्ग, उदा. [[Emacs|एमेक्स]] लिस्प, एमेक्स एडिटर्स के लिए। | ||
* [[ लुआ (प्रोग्रामिंग भाषा) ]], सामान्य रूप से | * [[ लुआ (प्रोग्रामिंग भाषा) | लुआ(प्रोग्रामिंग भाषा)]], सामान्य रूप से एप्लिकेशनों के लिए एक एक्सटेंशन भाषा के रूप में उपयोग करने के लिए डिज़ाइन की गई भाषा, कई अलग-अलग एप्लिकेशनों द्वारा उपयोग की जाती है। | ||
* [[पर्ल]],<ref name="sheppard00">{{cite web | url = http://www.perl.com/pub/2000/10/begperl1.html | title = शुरुआती लोगों के लिए पर्ल का परिचय| access-date = 2011-01-08 | last = Sheppard | first = Doug | date = 2000-10-16 | publisher = dev.perl.org}}</ref> एक टेक्स्ट-प्रोसेसिंग भाषा जो बाद में एक सामान्य-उद्देश्य वाली भाषा के रूप में विकसित हुई, जिसे विभिन्न | * [[पर्ल]],<ref name="sheppard00">{{cite web | url = http://www.perl.com/pub/2000/10/begperl1.html | title = शुरुआती लोगों के लिए पर्ल का परिचय| access-date = 2011-01-08 | last = Sheppard | first = Doug | date = 2000-10-16 | publisher = dev.perl.org}}</ref> एक टेक्स्ट-प्रोसेसिंग भाषा जो बाद में एक सामान्य-उद्देश्य वाली भाषा के रूप में विकसित हुई, जिसे विभिन्न एप्लिकेशनों के लिए एक एक्सटेंशन भाषा के रूप में भी उपयोग किया गया। | ||
* [[PowerShell]], एक स्क्रिप्टिंग भाषा जो मूल रूप से [[Microsoft Windows]] के साथ उपयोग के लिए है [[लेकिन]] बाद में [[macOS]] और [[Linux]] के लिए भी उपलब्ध है। | * [[PowerShell|पावरशेल]], एक स्क्रिप्टिंग भाषा जो मूल रूप से [[Microsoft Windows|माइक्रोसॉफ़्ट विंडोज़]] के साथ उपयोग के लिए है [[लेकिन|परन्तु]] बाद में [[macOS|मैक ओएस]] और [[Linux|लिनक्स]] के लिए भी उपलब्ध है। | ||
* पायथन (प्रोग्रामिंग | * पायथन(प्रोग्रामिंग भाषा), सरल सिंटैक्स वाली एक सामान्य-उद्देश्य वाली स्क्रिप्टिंग भाषा, विशेष रूप से टेक्स्ट प्रोसेसिंग के अनुकूल और एक एक्सटेंशन भाषा के रूप में भी उपयोग की जाती है। | ||
* [[Rexx]], [[IBM]] के | * [[Rexx|रेक्स]], [[IBM|आईबीएम]] के वीएम/एसपी आर3 में एक स्क्रिप्टिंग भाषा। [[NetRexx|नेटरेक्स]] और [[Object Rexx|ऑब्जेक्ट रेक्स]] रेक्स पर आधारित हैं। कई प्लेटफार्मों पर उपयोग किया जाता है। एप्लिकेशनों के लिए एक्सटेंशन भाषाओं के रूप में भी उपयोग किया जाता है। | ||
* | * रूबी(प्रोग्रामिंग भाषा), एक सामान्य उद्देश्य प्रोग्रामिंग भाषा जो कई प्रोग्रामिंग प्रतिमानों का समर्थन करती है। इसे उत्पादकता और सरलता पर प्रमुखता देने के साथ डिजाइन किया गया था। | ||
* | * एसईडी, अधिकांश यूनिक्स जैसे ऑपरेटिंग सिस्टम में उपलब्ध एक टेक्स्ट-प्रोसेसिंग भाषा, जिसे अन्य ऑपरेटिंग सिस्टम में पोर्ट किया गया है। | ||
* [[टीसीएल]],<ref>[http://www.perl.com/pub/2007/12/06/soto-11.html Programming is Hard, Let's Go Scripting…], [[Larry Wall]], December 6, 2007</ref> यूनिक्स जैसे | * [[टीसीएल]],<ref>[http://www.perl.com/pub/2007/12/06/soto-11.html Programming is Hard, Let's Go Scripting…], [[Larry Wall]], December 6, 2007</ref> यूनिक्स जैसे संदर्भ के लिए स्क्रिप्टिंग भाषा, जो 1990 के दशक में लोकप्रिय थी। जीयूआई एप्लिकेशनों को विकसित करने के लिए [[ टीसी (सॉफ्टवेयर) |टीसी(सॉफ्टवेयर]]) के संयोजन के साथ प्रयोग किया जा सकता है। | ||
* | * एप्लिकेशनों के लिए विज़ुअल बेसिक(वीबीए), विशेष रूप से [[Microsoft Office|माइक्रोसॉफ़्ट ऑफिस]] एप्लिकेशनों के लिए विकसित एक्सटेंशन भाषा है, और कई गैर-माइक्रोसॉफ़्ट एप्लिकेशनों में कम से कम आंशिक रूप से लागू की गई है। | ||
कुछ गेम | कुछ गेम प्रणाली को व्यापक रूप से विशिष्ट भाषाओं का उपयोग करके स्क्रिप्टिंग एक्सटेंशन द्वारा कार्यक्षमता में विस्तारित किया गया है, विशेष रूप से [[ दूसरा जीवन |सेकंड लाइफ]] [[ आभासी दुनिया |वर्चुअल वर्ल्ड]]([[लिंडन स्क्रिप्टिंग भाषा]] का उपयोग करके) और रेलरोड सिमुलेटर के [[ट्रेन्ज़]] फ़्रैंचाइज़ी(ट्रेनज़स्क्रिप्ट का उपयोग करके)। कुछ गेमों में, जैसे [[वेस्नोथ]], उपयोगकर्ता उपयोगकर्ता द्वारा योगदान की गई स्क्रिप्ट द्वारा परिभाषित गेम के विशिष्ट संस्करण खेल सकते हैं। | ||
== विशेषताएं == | == विशेषताएं == | ||
विशिष्ट स्क्रिप्टिंग भाषाओं को सीखने और लिखने के लिए बहुत | विशिष्ट स्क्रिप्टिंग भाषाओं को सीखने और लिखने के लिए बहुत तीव्र होने के विचार है, या तो लघु स्रोत कोड फ़ाइलों के रूप में या अंतःक्रियात्मक रूप से रीड-इवल-प्रिंट लूप(आरईपीएल, भाषा शेल) में।<ref>{{cite book | ||
|title=The Computing Universe: A Journey through a Revolution | |title=The Computing Universe: A Journey through a Revolution | ||
|first1=Tony | |first1=Tony | ||
Line 40: | Line 39: | ||
|isbn=978-1-31612322-5 | |isbn=978-1-31612322-5 | ||
|page=[https://books.google.com/books?id=q4FIBQAAQBAJ&pg=PA76 76] | |page=[https://books.google.com/books?id=q4FIBQAAQBAJ&pg=PA76 76] | ||
|postscript=, "A major characteristic of modern scripting languages is their interactivity, sometimes referred to as a ''REPL'' programming environment. […] The characteristics of ease of use and immediate execution with a REPL environment are sometimes taken as the definition of a scripting language."}}</ref> यह | |postscript=, "A major characteristic of modern scripting languages is their interactivity, sometimes referred to as a ''REPL'' programming environment. […] The characteristics of ease of use and immediate execution with a REPL environment are sometimes taken as the definition of a scripting language."}}</ref> यह सामान्यतः अपेक्षाकृत सरल सिंटेक्स(प्रोग्रामिंग भाषा) और [[शब्दार्थ (कंप्यूटर विज्ञान)|सीमेन्टिकी(कंप्यूटर विज्ञान]]) के तात्पर्य है; सामान्यतः एक स्क्रिप्ट(स्क्रिप्टिंग भाषा में लिखा गया कोड) को स्क्रिप्ट के रूप में प्रारम्भ से अंत तक निष्पादित किए जाते है, जिसमें कोई स्पष्ट [[प्रवेश बिंदु]] नहीं होते है। | ||
उदाहरण के लिए, [[ जावा (प्रोग्रामिंग भाषा) ]] को एक स्क्रिप्टिंग भाषा के रूप में वर्णित करना असामान्य है क्योंकि इसके लंबे सिंटैक्स और नियमों के | उदाहरण के लिए, [[ जावा (प्रोग्रामिंग भाषा) |जावा(प्रोग्रामिंग भाषा]]) को एक स्क्रिप्टिंग भाषा के रूप में वर्णित करना असामान्य है क्योंकि इसके लंबे सिंटैक्स और नियमों के विषय में कि कौन सी फाइलें किस वर्ग में स्थित हैं, और जावा को अंतःक्रियात्मक रूप से निष्पादित करना सीधे संभव नहीं है, क्योंकि स्रोत फ़ाइलों में मात्र परिभाषाएँ हो सकती हैं जिसे किसी [[ मेजबान आवेदन |होस्ट एप्लिकेशन]] या [[एप्लिकेशन लॉन्चर]] द्वारा बाहरी रूप से लागू किए जाने चाहिए। | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
Line 51: | Line 50: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
कोड का यह | कोड का यह भाग हैलो वर्ल्ड को प्रिंट करने के लिए कुछ भी नहीं करता है क्योंकि मुख्य() को 'हैलोवर्ल्ड' वर्ग में घोषित नहीं किया गया है, यद्यपि नीचे वाला उपयोगी होगा। | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
public class HelloWorld { | public class HelloWorld { | ||
Line 62: | Line 61: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
उपरोक्त उदाहरण में, मुख्य परिभाषित किया गया है और इसलिए इसे लॉन्चर द्वारा लागू किया जा सकता है, | उपरोक्त उदाहरण में, मुख्य परिभाषित किया गया है और इसलिए इसे लॉन्चर द्वारा लागू किया जा सकता है, यद्यपि यह अभी भी अंतःक्रियात्मक रूप से निष्पादित नहीं किए जा सकते है। इसके विपरीत, [[पायथन (कंप्यूटर भाषा)|पायथन(कंप्यूटर भाषा]]) फ़ाइल में कुछ कार्यों की परिभाषा की अनुमति देते है, या कार्यों से पूर्ण रूप से बचने और [[अनिवार्य प्रोग्रामिंग]] शैली का उपयोग करने या यहां तक कि इसे अंतःक्रियात्मक रूप से उपयोग करने की अनुमति देते है। | ||
इसके विपरीत, [[पायथन (कंप्यूटर भाषा)]] | |||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Line 70: | Line 68: | ||
पायथन कोड की यह एक पंक्ति हैलो वर्ल्ड प्रिंट करती है; यहाँ main() जैसा कोई घोषणात्मक कथन आवश्यक नहीं है। | पायथन कोड की यह एक पंक्ति हैलो वर्ल्ड प्रिंट करती है; यहाँ main() जैसा कोई घोषणात्मक कथन आवश्यक नहीं है। | ||
एक स्क्रिप्टिंग भाषा | एक स्क्रिप्टिंग भाषा सामान्यतः स्रोत कोड या [[बाईटकोड]] से व्याख्या की गई भाषा होती है।<ref>{{cite web |last=Brown |first=Vicki |title=स्क्रिप्टिंग भाषाएँ|url=http://www.mactech.com/articles/mactech/Vol.15/15.09/ScriptingLanguages/index.html |url-status=live |access-date=2009-07-22 |website=MacTech {{!}} The journal of Apple technology. |language=en-US}} | ||
</ref> इसके विपरीत, जिस सॉफ़्टवेयर | </ref> इसके विपरीत, जिस सॉफ़्टवेयर संदर्भ(दुभाषिया) के लिए स्क्रिप्ट लिखी जाती है, वह सामान्यतः एक [[संकलित भाषा]] में लिखी जाती है और [[मशीन कोड]] के रूप में वितरित की जाती है। | ||
स्क्रिप्टिंग भाषाओं को प्रोग्राम के अंतिम उपयोगकर्ताओं द्वारा उपयोग के लिए डिज़ाइन किया जा सकता है - अंतिम उपयोगकर्ता विकास - या | स्क्रिप्टिंग भाषाओं को प्रोग्राम के अंतिम उपयोगकर्ताओं द्वारा उपयोग के लिए डिज़ाइन किया जा सकता है - अंतिम उपयोगकर्ता विकास - या मात्र डेवलपर्स द्वारा आंतरिक उपयोग के लिए हो सकता है, इसलिए वे स्क्रिप्टिंग भाषा में प्रोग्राम के अंश लिख सकते हैं। स्क्रिप्टिंग भाषाएं सामान्यतः [[अमूर्त (कंप्यूटर विज्ञान)|अमूर्त(कंप्यूटर विज्ञान]]) का उपयोग करती हैं, जो सूचना छिपाने का एक रूप है, उपयोगकर्ताओं को आंतरिक चर प्रकार, डेटा संग्रहण और मेमोरी प्रबंधन के विवरण को अलग करने के लिए। | ||
स्क्रिप्ट को प्रायः निष्पादित करने वाले व्यक्ति द्वारा बनाया या संशोधित किया जाता है,<ref>{{cite web|publisher=IEEE Computer|year=2008|url=http://www.cse.wustl.edu/~loui/praiseieee.html|title=पटकथा की प्रशंसा में|first=Ronald|last=Loui|access-date=2013-08-27|archive-url=https://web.archive.org/web/20150923211452/http://www.cse.wustl.edu/~loui/praiseieee.html#|archive-date=2015-09-23|url-status=dead}}</ref> परन्तु उन्हें प्रायः वितरित भी किया जाता है, जैसे कि जब गेम के बड़े भाग को स्क्रिप्टिंग भाषा में लिखे जाते है, विशेष रूप से गूगल क्रोम टी-रेक्स गेम। | |||
== इतिहास == | == इतिहास == | ||
प्रारंभिक [[मेनफ़्रेम कंप्यूटर]](1950 के दशक में) [[ प्रचय संसाधन |बैच प्रोसेसिंग]] का उपयोग करने के अतिरिक्त गैर-अन्योन्यक्रिया थे। आईबीएम की [[ नौकरी नियंत्रण भाषा |कार्य नियंत्रण भाषा]](जेसीएल) बैच प्रोसेसिंग को नियंत्रित करने के लिए उपयोग की जाने वाली भाषाओं के मूलरूप है।<ref>{{cite book|last=IBM Corporation|title=IBM System/360 Operating System Job Control Language (C28-6529-4)|year=1967|url=http://www.bitsavers.org/pdf/ibm/360/os/R01-08/C28-6539-4_OS_JCL_Mar67.pdf}}</ref> | |||
प्रथम अन्योन्यक्रिया [[ खोल (कंप्यूटिंग) |शेल(कंप्यूटिंग]]) को 1960 के दशक में प्रथम बार साझा करने वाली प्रणालियों के दूरस्थ संचालन को सक्षम करने के लिए विकसित किया गया था, और ये [[शेल स्क्रिप्ट्स|शेल स्क्रिप्ट्]] का उपयोग करते थे, जो कंप्यूटर प्रोग्राम, शेल के भीतर चलने वाले कंप्यूटर प्रोग्राम को नियंत्रित करते थे। अपनी टीआरएसी(प्रोग्रामिंग भाषा) भाषा में [[केल्विन मूर्स]] को सामान्यतः कमांड प्रतिस्थापन का आविष्कार करने का श्रेय दिया जाता है, जो स्क्रिप्ट में कमांड को अंत: स्थापित करने की क्षमता होती है, जब व्याख्या की जाती है तो स्क्रिप्ट में एक अक्षर स्ट्रिंग डालें।<ref>{{cite web|last=Mooers|first=Calvin|title=टीआरएसी, प्रतिक्रियाशील टाइपराइटर के लिए एक प्रक्रिया-वर्णन भाषा|url=http://tracfoundation.org/trac64/procedure.htm|archive-url=https://web.archive.org/web/20010425014914/http://tracfoundation.org/trac64/procedure.htm|archive-date=2001-04-25|access-date=March 9, 2012}}</ref> [[ मॉलटिक्स |मॉलटिक्स]] इन सक्रिय कार्यों को कहते हैं।<ref>{{cite web |editor-last=Van Vleck |editor-first=Thomas |title=Multics Glossary – A — (active function) |url=http://www.multicians.org/mga.html |access-date=March 9, 2012}}</ref> [[लुई पॉज़िन]] ने 1964 के समीप [[संगत समय-साझाकरण प्रणाली]] के लिए रनकॉम नामक कमांड स्क्रिप्ट के लिए एक प्रारंभिक प्रोसेसर लिखा। एमआईटी में [[स्टुअर्ट मैडनिक]] ने 1966 में आईबीएम के सीपी/सीएमएस के लिए एक स्क्रिप्टिंग भाषा लिखी। उन्होंने मूल रूप से इस प्रोसेसर को COMMAND कहा, जिसे बाद में [[CMS EXEC|सीएमएस ईएक्सईसी]] नाम दिया गया।<ref>{{cite web|last=Varian|first=Melinda|title=VM AND THE VM COMMUNITY: Past, Present, and Future|url=http://web.me.com/melinda.varian/Site/Melinda_Varians_Home_Page_files/neuvm.pdf|access-date=March 9, 2012}}</ref> मल्टिक्स में CTSS रनकॉम की शाखा सम्मिलित है, जिसे रनकॉम भी कहा जाता है।<ref>{{cite web |editor-last=Van Vleck |editor-first=Thomas |title=Multics Glossary – R — (RUNCOM) |url=http://www.multicians.org/mgr.html#runcom |access-date=March 9, 2012}}</ref> सीएमएस ईएक्सईसी को अंततः [[EXEC 2|ईएक्सईसी 2]] और [[REXX|रेक्स]] द्वारा बदल दिया गया। | |||
कुछ सॉफ़्टवेयर में कई अलग-अलग स्क्रिप्टिंग भाषाएँ | टीसीएल और लुआ(प्रोग्रामिंग भाषा) जैसी भाषाओं को विशेष रूप से सामान्य-उद्देश्य वाली स्क्रिप्टिंग भाषाओं के रूप में डिज़ाइन किया गया था जिसे किसी भी एप्लिकेशन में अंत: स्थापित किया जा सकता है। अन्य भाषाओं जैसे एप्लिकेशनों के लिए विजुअल बेसिक(वीबीए) ने अंतर्निहित प्रणाली की स्वचालन सुविधाओं के साथ सुस्थिर एकीकरण प्रदान किया। प्रत्येक एप्लिकेशन के लिए एक नवीन भाषा विकसित करने के अतिरिक्त ऐसी सामान्य-उद्देश्य वाली स्क्रिप्टिंग भाषाओं को अंत: स्थापित करना भी स्पष्ट लाभ था, जिससे एप्लिकेशन डेवलपर को भाषा अनुवादक को स्क्रैच से कोड करने की आवश्यकता से राहत मिली और उपयोगकर्ता को कहीं और सीखे गए कौशल को लागू करने की अनुमति मिली। | ||
कुछ सॉफ़्टवेयर में कई अलग-अलग स्क्रिप्टिंग भाषाएँ सम्मिलित होती हैं। आधुनिक [[वेब ब्राउज़र]] सामान्यतः ब्राउज़र को एक्सटेंशन लिखने के लिए एक भाषा प्रदान करते हैं, और ब्राउज़र को नियंत्रित करने के लिए कई मानक अंत: स्थापित भाषाएं प्रदान करते हैं, जिनमें जावास्क्रिप्ट(ईसीएमएस्क्रिप्ट की एक उपभाषा) या एक्सयूएल सम्मिलित है। | |||
== प्रकार == | == प्रकार == | ||
स्क्रिप्टिंग भाषाओं को कई अलग-अलग प्रकारों में वर्गीकृत किया जा सकता है, जिनमें प्रकारों के बीच | स्क्रिप्टिंग भाषाओं को कई अलग-अलग प्रकारों में वर्गीकृत किया जा सकता है, जिनमें प्रकारों के बीच विचारणीय अधिव्यापन होता है। | ||
=== | === ग्लू भाषाएं === | ||
स्क्रिप्टिंग को प्रायः [[सिस्टम प्रोग्रामिंग|प्रणाली प्रोग्रामिंग]] के विपरीत माना जाता है, जैसा कि ऑस्टरहाउट के द्विभाजन या [[बड़े में प्रोग्रामिंग और छोटे में प्रोग्रामिंग]] के रूप में होता है। इस दृष्टि से, स्क्रिप्टिंग [[ गोंद कोड |ग्लू कोड]] है, जो [[सॉफ्टवेयर घटक|सॉफ्टवेयर अवयवों]] को जोड़ता है, और इस उद्देश्य के लिए विशेषीकृत भाषा ग्लू भाषा है। पाइपलाइन और शेल स्क्रिप्टिंग ग्लू भाषाओं के मूल उदाहरण हैं, और पर्ल को प्रारम्भ में इसी भूमिका को भरने के लिए विकसित किया गया था। [[ वेब विकास |वेब विकास]] को ग्लू भाषा का उपयोग माना जा सकता है, जो [[डेटाबेस]] और [[वेब सर्वर]] के बीच इंटरफेसिंग करता है। परन्तु यदि स्क्रिप्ट में पर्याप्त मात्रा में तर्क लिखा जाता है, तो इसे मात्र एक अन्य सॉफ्टवेयर अवयव के रूप में जाना जाता है, न कि ग्लू के रूप में। | |||
स्क्रिप्टिंग | |||
ग्लू | ग्लू भाषा विशेष रूप से लिखने और बनाए रखने के लिए उपयोगी हैं: | ||
* कमांड शेल के लिए | * कमांड शेल के लिए विशिष्ट कमांड;<ref>{{Cite web|title=What is glue code (glue code language)? - Definition from WhatIs.com|url=https://whatis.techtarget.com/definition/glue-code|access-date=2022-01-31|website=WhatIs.com|language=en}}</ref> | ||
* उन | * उन प्रोग्रामों की तुलना में छोटे प्रोग्राम जिन्हें संकलित भाषा में ठीक विधि से कार्यान्वित किया जाता है;<ref>{{Cite web|last=Larson|first=Quincy|title=व्याख्या बनाम संकलित प्रोग्रामिंग भाषाएँ|url=https://www.freecodecamp.org/news/compiled-versus-interpreted-languages/|url-status=live|access-date=23 February 2022|website=Free Code Camp|date=10 January 2020 }}</ref> | ||
* | * निष्पादनयोग्य के लिए रैपर प्रोग्राम, जैसे एक बैच फ़ाइल जो फ़ाइलों को स्थानांतरित या युक्तियोजित करती है और ऑपरेटिंग सिस्टम के साथ अन्य कार्य करती है जैसे वर्ड प्रोसेसर, स्प्रेडशीट, डेटा बेस, असेंबलर, कंपाइलर, आदि;<ref>{{Cite web|last=Balkis|first=Anton|title=लिपियाँ है|url=https://rajatips.com/script/|url-status=live|access-date=23 February 2022|website=Raja Tips}}</ref> | ||
* | * स्क्रिप्ट जो बदल सकती हैं;<ref>{{Cite web|last=Axelsson|first=Mats|title=शेल स्क्रिप्ट - आप क्या बदल सकते हैं|url=https://linuxhint.com/customize_shell_scripts/|url-status=live|access-date=23 February 2022|website=Linux Hint}}</ref> | ||
* | * हल को तीव्रता से एप्लिकेशन विकास अंततः दूसरे, सामान्यतः संकलित, भाषा में कार्यान्वित किया जाता है।{{Citation needed|date=January 2022}} | ||
ग्लू भाषा उदाहरण: | |||
{{div col|colwidth=18em}} | {{div col|colwidth=18em}} | ||
* [[एप्पलस्क्रिप्ट]] | * [[एप्पलस्क्रिप्ट]] | ||
* [[ | * [[शीत गलन]] | ||
* [[डिजिटल कमांड भाषा]] | * [[डिजिटल कमांड भाषा]] | ||
* [[ | * [[अंत:स्थापित करने योग्य सामान्य लिस्प]] | ||
* [[ईसीएल प्रोग्रामिंग भाषा]] | * [[ईसीएल प्रोग्रामिंग भाषा]] | ||
* एरलांग (प्रोग्रामिंग भाषा) | * एरलांग (प्रोग्रामिंग भाषा) | ||
* सीएमएस कार्यकारी | * सीएमएस कार्यकारी | ||
* [[ | * [[ईएक्सईसी2]] | ||
* | * कार्य नियंत्रण भाषा | ||
* [[कॉफीस्क्रिप्ट]] | * [[कॉफीस्क्रिप्ट]] | ||
* [[जूलिया (प्रोग्रामिंग भाषा)]] | * [[जूलिया (प्रोग्रामिंग भाषा)]] | ||
Line 133: | Line 130: | ||
* [[एक्सएसएलटी]] | * [[एक्सएसएलटी]] | ||
{{Div col end}} | {{Div col end}} | ||
प्रोग्रामेबल कैलकुलेटर जैसे अन्य उपकरणों में भी ग्लू | ऑपरेटिंग सिस्टम या एप्लिकेशन अवयवों के संपर्क में आने वाली मैक्रो(कंप्यूटर विज्ञान) भाषाएं ग्लू भाषाओं के रूप में कार्य कर सकती हैं। इनमें एप्लिकेशन के लिए विजुअल बेसिक, [[वर्डबेसिक]], [[लोटसस्क्रिप्ट]], [https://www.oberonplace.com/tutor/page1.htm कोरलस्क्रिप्ट], हमिंगबर्ड बेसिक, क्विकस्क्रिप्ट, रेक्स, [https://msdn.microsoft.com/en- us/library/ms994312.aspx सैक्सबेसिक], और [[WinWrap Basic|विनरैप बेसिक]] [https://msdn.microsoft.com/en- सम्मिलित हैं।]। एडब्ल्यूके जैसे अन्य उपकरणों को भी ग्लू भाषा माना जा सकता है, जैसा कि विंडोज़ स्क्रिप्ट होस्ट इंजन(वीबीस्क्रिप्ट, जेस्क्रिप्ट और वीबीए द्वारा विंडोज़ में डिफ़ॉल्ट रूप से लागू किया जा सकता है और रेक्स, पर्ल, टीसीएल, पाइथन, एक्सएसएलटी के कार्यान्वयन सहित तृतीय-पक्ष इंजन, रूबी, मॉडर्न पास्कल, डेल्फी और सी)। अधिकांश एप्लिकेशन [[वस्तु मॉडल|ऑब्जेक्ट मॉडल]] या अपने स्वयं के कार्यों के माध्यम से ऑपरेटिंग सिस्टम अवयवों का उपयोग और उपयोग कर सकते हैं। | ||
प्रोग्रामेबल कैलकुलेटर जैसे अन्य उपकरणों में भी ग्लू भाषा हो सकती हैं; विंडोज सीई जैसे पीडीए के ऑपरेटिंग सिस्टम में देशी या तीसरे पक्ष के मैक्रो उपकरण उपलब्ध हो सकते हैं जो सामान्य ग्लू भाषाओं के कार्यान्वयन के अतिरिक्त एप्लिकेशनों को एक साथ जोड़ते हैं - जिसमें [[विंडोज एनटी]], डॉस और कुछ [[ यूनिक्स खोल |यूनिक्स शेल]], रेक्स, मॉडर्न पास्कल, पीएचपी और पर्ल सम्मिलित हैं। ओएस संस्करण के आधार पर, डब्ल्यूएसएच और डिफ़ॉल्ट स्क्रिप्ट इंजन(वीबीस्क्रिप्ट और जेस्क्रिप्ट) उपलब्ध हैं। | |||
प्रोग्रामेबल कैलकुलेटर को ग्लू भाषाओं में तीन विधियों से प्रोग्राम किया जा सकता है। उदाहरण के लिए, [[ टेक्सस उपकरण |टेक्सस उपकरण]] [[TI-92|टीआई-92]], फ़ैक्टरी डिफ़ॉल्ट रूप से कमांड स्क्रिप्ट भाषा के साथ प्रोग्राम किया जा सकता है। कैलकुलेटर [[की]] [[TI-NSpire|टीआई-एनस्पायर]] श्रृंखला में स्क्रिप्टिंग और ग्लू भाषा लुआ(प्रोग्रामिंग भाषा) को सम्मिलित करने को इसके आनुक्रमिक के रूप में देखा जा सकता है। अधिकांश रेखांकन कैलकुलेटरों की प्राथमिक ऑन-बोर्ड उच्च-स्तरीय प्रोग्रामिंग भाषाएं(प्रायः मूल प्रकार, कभी-कभी लिस्प व्युत्पन्न, और अधिक असामान्य रूप से, C व्युत्पन्न) कई स्थितियों में कैलकुलेटर क्रिया को एक साथ ग्लू कर सकती हैं - जैसे ग्राफ़, सूचियाँ, आव्यूह, आदि। अधिक व्यापक मूल संस्करण के तृतीय-पक्ष कार्यान्वयन जो इस लेख में ग्लू भाषाओं के रूप में सूचीबद्ध प्रकार के समीप हो सकते हैं- और टीआई और एचपी ग्राफिंग कैलकुलेटर पर पर्ल, रेक्स या विभिन्न ऑपरेटिंग सिस्टम शेल को लागू करने के प्रयासों का भी उल्लेख किया गया है। C और पर्ल, रेक्स, एडब्ल्यूके, और शेल स्क्रिप्ट को पर्ल, मॉडर्न पास्कल, वीबीस्क्रिप्ट से और पर्ल के बीच परिवर्तन करने वाले उपकरणों के साथ उपयोग की जाने वाली कुछ टीआई और एचपी मशीनों के लिए पीसी-आधारित C [[पार compilers|पार संकलक]] का उपयोग कैलकुलेटर पर अंतिम कार्यान्वयन(संकलित प्रोग्राम के रूप में) के लिए ग्लू भाषा में एक प्रोग्राम लिखना संभव बनाती हैं।{{Citation needed|date=October 2021}} | |||
=== | ===एडिटर्स भाषाएं=== | ||
कई | कई टेक्स्ट एडिटर्स एडिटर्स में निर्मित मैक्रो भाषा का उपयोग करके लिखे गए मैक्रोज़ का समर्थन करते हैं, उदाहरण के लिए, [[सेमवेयर संपादक|सेमवेयर एडिटर्स]](टीएसई), [[विम (पाठ संपादक)|विम(टेक्स्ट एडिटर्स)]] (वीआईएम), या बाहरी कार्यान्वयन का उपयोग करते हुए, उदाहरण के लिए, एक्सईडीआईटी, या दोनों, उदा., [[ KEDIT |KEDIT]]। कभी-कभी टेक्स्ट एडिटर्स और एडिट मैक्रोज़ का उपयोग अन्य एप्लिकेशन प्रदान करने के लिए आच्छादन के अंतर्गत किया जाता है, उदाहरण के लिए, [[ संवादी मॉनिटर सिस्टम |संवादी मॉनिटर प्रणाली]] में फाइललिस्ट और आरडीआरएलआईएसटी। | ||
=== | ===कार्य नियंत्रण भाषाएं और शेल=== | ||
{{Main| | {{Main|शैल स्क्रिप्ट}} | ||
स्क्रिप्टिंग भाषाओं का एक प्रमुख वर्ग [[ नौकरी नियंत्रण (कंप्यूटिंग) ]] के स्वचालन से विकसित हुआ है, जो | स्क्रिप्टिंग भाषाओं का एक प्रमुख वर्ग [[ नौकरी नियंत्रण (कंप्यूटिंग) |कार्य नियंत्रण(कंप्यूटिंग]]) के स्वचालन से विकसित हुआ है, जो प्रणाली प्रोग्राम के व्यवहार को प्रारम्भ करने और नियंत्रित करने से संबंधित है।<ref>{{Cite web |title=जॉब कंट्रोल बेसिक्स (बैश रेफरेंस मैनुअल)|url=https://www.gnu.org/software/bash/manual/html_node/Job-Control-Basics.html |access-date=2022-05-20 |website=www.gnu.org}}</ref>(इस अर्थ में, कोई गोले को आईबीएम की जेसीएल, या कार्य नियंत्रण भाषा के वंशज होने के विषय में सोच सकता है, जिसका उपयोग इस उद्देश्य के लिए किया गया था)। इनमें से कई भाषाओं के दुभाषिए यूनिक्स शेल या एमएस-डॉस <code>[[COMMAND.COM]]</code> जैसे कमांड-लाइन दुभाषियों के रूप में दोगुने हैं। अन्य, जैसे कि एप्पलस्क्रिप्ट स्क्रिप्ट बनाने के लिए अंग्रेजी जैसी कमांड का उपयोग करने की प्रस्तुति करते हैं। | ||
=== जीयूआई स्क्रिप्टिंग === | === जीयूआई स्क्रिप्टिंग === | ||
ग्राफिकल यूजर इंटरफेस के आगमन के साथ, कंप्यूटर को नियंत्रित करने के लिए | ग्राफिकल यूजर इंटरफेस के आगमन के साथ, कंप्यूटर को नियंत्रित करने के लिए विशेष प्रकार की स्क्रिप्टिंग भाषा का उदय हुआ। ये भाषाएं उन्हीं ग्राफ़िक विंडो, मेनू, बटन आदि के साथ अन्तः क्रिया करती हैं, जो एक मानव उपयोगकर्ता करता है। वे उपयोगकर्ता के कार्यों का अनुकरण करके ऐसा करते हैं। इन भाषाओं का उपयोग सामान्यतः उपयोगकर्ता क्रियाओं को स्वचालित करने के लिए किया जाता है। ऐसी भाषाओं को मैक्रो(कंप्यूटर विज्ञान) कीबोर्ड और माउस मैक्रोज़ भी कहा जाता है जब नियंत्रण सिम्युलेटेड कुंजी प्रेस या माउस क्लिक के माध्यम से होता है, साथ ही टच-सक्रिय स्क्रीन पर टैपिंग या प्रेसिंग के माध्यम से होता है। | ||
सिद्धांत रूप में इन भाषाओं का उपयोग किसी भी जीयूआई एप्लिकेशन को नियंत्रित करने के लिए किया जा सकता है; परन्तु, व्यवहार में उनका उपयोग सीमित है क्योंकि उनके उपयोग के लिए एप्लिकेशन और ऑपरेटिंग सिस्टम से समर्थन की आवश्यकता होती है। इस सीमा के कुछ अपवाद हैं। कुछ जीयूआई स्क्रिप्टिंग भाषाएं ग्राफिकल ऑब्जेक्ट् को उनके डिस्प्ले स्क्रीन [[पिक्सेल]] से पहचानने पर आधारित होती हैं। ये जीयूआई स्क्रिप्टिंग भाषाएँ ऑपरेटिंग सिस्टम या एप्लिकेशन के समर्थन पर निर्भर नहीं करती हैं। | |||
जब जीयूआई उपयुक्त इंटरफेस प्रदान करता है, जैसे कि आईबीएम [[ कार्यस्थल खोल |कार्यस्थल शेल]] में, सामान्य स्क्रिप्टिंग भाषा, उदा. [[OREXX|ओरेक्स]], जीयूआई स्क्रिप्ट लिखने के लिए उपयोग किया जा सकता है। | |||
=== एप्लिकेशन-विशिष्ट भाषाएं === | === एप्लिकेशन-विशिष्ट भाषाएं === | ||
एप्लिकेशन विशिष्ट भाषाओं को कई अलग-अलग श्रेणियों में विभाजित किया जा सकता है, अर्थात स्टैंडअलोन आधारित ऐप भाषाएँ (निष्पादन योग्य) या आंतरिक एप्लिकेशन विशिष्ट भाषाएँ (पोस्टस्क्रिप्ट, | एप्लिकेशन विशिष्ट भाषाओं को कई अलग-अलग श्रेणियों में विभाजित किया जा सकता है, अर्थात स्टैंडअलोन आधारित ऐप भाषाएँ(निष्पादन योग्य) या आंतरिक एप्लिकेशन विशिष्ट भाषाएँ(पोस्टस्क्रिप्ट, एक्सएमएल, जीस्क्रिप्ट कुछ व्यापक रूप से वितरित स्क्रिप्ट के रूप में, क्रमशः एडोब, एमएस और गूगल द्वारा कार्यान्वित) अन्य में सम्मिलित हैं एप्लिकेशन उपयोगकर्ता की आवश्यकताओं के अनुरूप एक सिद्धप्रयुक्त स्क्रिप्टिंग भाषा। इसी प्रकार, कई कंप्यूटर गेम प्रणाली गैर-प्लेयर पात्रों और गेम के संदर्भ के क्रमादेशित कार्यों को व्यक्त करने के लिए एक विशिष्ट स्क्रिप्टिंग भाषा का उपयोग करते हैं। इस प्रकार की भाषाएँ एक ही एप्लिकेशन के लिए डिज़ाइन की गई हैं; और, जबकि वे सतही रूप से विशिष्ट सामान्य-उद्देश्य वाली भाषा से मिलते-जुलते हो सकते हैं(उदाहरण के लिए क्वेकसी, C के बाद प्रतिरूपित), उनके समीप विशिष्ट विशेषताएं हैं जो उन्हें अलग करती हैं। एमेक्स लिस्प, जबकि लिस्प(प्रोग्रामिंग भाषा) की पूर्ण रूप से गठित और सक्षम उपभाषा, में कई विशेष विशेषताएं सम्मिलित हैं जो इसे एमेक्स के संपादन कार्यों को विस्तारित करने के लिए सबसे उपयोगी बनाती हैं। एक एप्लिकेशन-विशिष्ट स्क्रिप्टिंग भाषा को एक [[डोमेन-विशिष्ट प्रोग्रामिंग भाषा]] के रूप में देखा जा सकता है जो एकल एप्लिकेशन के लिए विशिष्ट है। | ||
=== | ===एक्सटेंशन/ अंत: स्थापित करने योग्य भाषाएं=== | ||
एप्लिकेशन-विशिष्ट स्क्रिप्टिंग भाषाओं को एप्लिकेशन प्रोग्राम में | एप्लिकेशन-विशिष्ट स्क्रिप्टिंग भाषाओं को एप्लिकेशन प्रोग्राम में अंत: स्थापित करने योग्य बनाने के उद्देश्य से कई भाषाओं को डिज़ाइन किया गया है। एप्लिकेशन प्रोग्रामर(सी या अन्य प्रणाली भाषा में कार्य कर रहे) में हुक सम्मिलित हैं जहां स्क्रिप्टिंग भाषा एप्लिकेशन को नियंत्रित कर सकती है। ये भाषाएँ तकनीकी रूप से किसी एप्लिकेशन-विशिष्ट एक्सटेंशन भाषा के समतुल्य हो सकती हैं, परन्तु जब कोई एप्लिकेशन सामान्य भाषा को अंत: स्थापित करता है, तो उपयोगकर्ता को एप्लिकेशन से एप्लिकेशन में कौशल स्थानांतरित करने में सक्षम होने का लाभ मिलता है। अधिक सामान्य विकल्प मात्र एक लाइब्रेरी(प्रायः एक C लाइब्रेरी) प्रदान करना है, जिसका उपयोग सामान्य-उद्देश्य वाली भाषा विशिष्ट डोमेन के लिए भाषा को संशोधित किए बिना, एप्लिकेशन को नियंत्रित करने के लिए कर सकती है। | ||
जावास्क्रिप्ट के रूप में | जावास्क्रिप्ट के रूप में प्रारम्भ हुआ और मुख्य रूप से अभी भी वेब ब्राउज़र के अंदर स्क्रिप्टिंग के लिए एक भाषा है; यद्यपि, एकमास्क्रिप्ट के रूप में भाषा के मानकीकरण ने इसे सामान्य-उद्देश्य वाली अंत: स्थापित करने योग्य भाषा के रूप में लोकप्रिय बना दिया है। विशेष रूप से, [[mozilla|मोज़िल्ला]] कार्यान्वयन स्पाइडरमंकी(जावास्क्रिप्ट इंजन) याहू!, विजेट इंजन जैसे कई संदर्भों में सन्निहित है। ईसीएमएस्क्रिप्ट कार्यान्वयन को अंत: स्थापित करने वाले अन्य एप्लिकेशनों में [[एडोब सिस्टम्स|एडोब प्रणाली्]] उत्पाद [[एडोब फ्लैश]]([[ ActionScript |एक्शनस्क्रिप्ट]]) और [[एडोबी एक्रोबैट]]([[पीडीएफ]] फाइलों की स्क्रिप्टिंग के लिए) सम्मिलित हैं। | ||
टीसीएल को एक | टीसीएल को एक एक्सटेंशन भाषा के रूप में बनाया गया था, परन्तु पायथन(प्रोग्रामिंग भाषा), पर्ल, और रूबी(प्रोग्रामिंग भाषा) जैसी भूमिकाओं में सामान्य-उद्देश्य वाली भाषा के रूप में अधिक बार उपयोग किया जाने लगा है। दूसरी ओर, रेक्स मूल रूप से एक कार्य नियंत्रण भाषा के रूप में बनाया गया था, परन्तु व्यापक रूप से एक एक्सटेंशन भाषा के साथ-साथ एक सामान्य-उद्देश्य वाली भाषा के रूप में उपयोग किया जाता है। पर्ल सामान्य-उद्देश्य वाली भाषा है, परन्तु इसमें ऑपरल(1990) उपभाषा थी, जिसमें पर्ल 4 बाइनरी सम्मिलित थी जिसमें [[ओरेकल कॉल इंटरफ़ेस]] संकलित था। यद्यपि इसे बाद में एक लाइब्रेरी(पर्ल मॉड्यूल), [https://metacpan] द्वारा बदल दिया गया है। .org/module/DBD::Oracle DBD::Oracle]।<ref>[https://metacpan.org/module/Oraperl Oraperl], CPAN]</ref><ref> | ||
[http://www.orafaq.com/wiki/Perl Perl], ''Underground Oracle FAQ''</ref> | [http://www.orafaq.com/wiki/Perl Perl], ''Underground Oracle FAQ''</ref> | ||
अन्य जटिल और कार्य-उन्मुख एप्लिकेशन एक अंत: स्थापित प्रोग्रामिंग भाषा को सम्मिलित और अनावृत कर सकते हैं ताकि उनके उपयोगकर्ताओं को अधिक नियंत्रण की अनुमति मिल सके और उन्हें उपयोगकर्ता इंटरफ़ेस के माध्यम से उपलब्ध होने की तुलना में अधिक कार्यक्षमता प्रदान की जा सके, चाहे वह कितना भी परिष्कृत क्यों न हो। उदाहरण के लिए, [[ Autodesk माया |ऑटोडेस्क माया]] 3डी संलेखन उपकरण [[माया एंबेडेड भाषा|माया अंतःस्थापित भाषा]], या [[ब्लेंडर (सॉफ्टवेयर)|ब्लेंडर(सॉफ्टवेयर]]) को अंत: स्थापित करता है जो इस भूमिका को भरने के लिए पायथन(प्रोग्रामिंग भाषा) का उपयोग करता है। | |||
Ch (कंप्यूटर प्रोग्रामिंग) उद्योग के लिए C/C++ एप्लिकेशन प्रोग्राम में | कुछ अन्य प्रकार के एप्लिकेशन जिन्हें तीव्र फीचर जोड़ने या ट्वीक-एंड-रन साइकिल(जैसे [[खेल यंत्र|गेम यंत्र]]) की आवश्यकता होती है, वे भी एक अंत: स्थापित भाषा का उपयोग करते हैं। विकास के समय, यह उन्हें प्रोटोटाइप सुविधाओं को तीव्रता से और अधिक स्वतंत्र रूप से ट्वीक करने की अनुमति देता है, बिना उपयोगकर्ता को एप्लिकेशन के आंतरिक कार्यकारी के गहन ज्ञान की आवश्यकता के बिना या प्रत्येक ट्वीक के बाद इसे फिर से बनाने के लिए(जिसमें अत्यधिक समय लग सकता है)। इस उद्देश्य के लिए उपयोग की जाने वाली स्क्रिप्टिंग भाषाएँ अधिक सामान्य और अधिक प्रसिद्ध लुआ(प्रोग्रामिंग भाषा) और पायथन(प्रोग्रामिंग भाषा) से लेकर [[एंजेलस्क्रिप्ट]] और [[गिलहरी (प्रोग्रामिंग भाषा)|गिलहरी(प्रोग्रामिंग भाषा]]) जैसी कम-ज्ञात हैं। | ||
Ch(कंप्यूटर प्रोग्रामिंग) उद्योग के लिए C/C++ एप्लिकेशन प्रोग्राम में अंत: स्थापित करने के लिए एक और C संगत स्क्रिप्टिंग विकल्प है। | |||
== यह भी देखें == | == यह भी देखें == | ||
* | * स्थापत्य विवरण भाषा | ||
* [[संलेखन भाषा]] | * [[संलेखन भाषा]] | ||
* [[स्वचालन बनाएँ]]<ref>{{Cite web|url=https://www.python.org/doc/essays/omg-darpa-mcc-position/|title=यह सब एक साथ गोंद|last=van Rossum|first=Guido|date=January 6–8, 1998|website=Glue It All Together With Python|publisher=python.org}}</ref> | * [[स्वचालन बनाएँ|निर्माण स्वचालन]] <ref>{{Cite web|url=https://www.python.org/doc/essays/omg-darpa-mcc-position/|title=यह सब एक साथ गोंद|last=van Rossum|first=Guido|date=January 6–8, 1998|website=Glue It All Together With Python|publisher=python.org}}</ref> | ||
* [[विन्यास फाइल]] | * [[विन्यास फाइल|कॉन्फ़िगरेशन फाइल]] | ||
* [[दुभाषिया निर्देश]] / [[शेबांग (यूनिक्स)]] | * [[दुभाषिया निर्देश]] / [[शेबांग (यूनिक्स)|शेबांग(यूनिक्स)]] | ||
* टेंपलेटिंग भाषा | * टेंपलेटिंग भाषा | ||
Line 199: | Line 195: | ||
{{Authority control}} | {{Authority control}} | ||
{{DEFAULTSORT:Scripting Language}} | {{DEFAULTSORT:Scripting Language}} | ||
[[Category: | [[Category:All articles with unsourced statements|Scripting Language]] | ||
[[Category:Created On 16/03/2023]] | [[Category:Articles with hatnote templates targeting a nonexistent page|Scripting Language]] | ||
[[Category:Articles with unsourced statements from January 2022|Scripting Language]] | |||
[[Category:Articles with unsourced statements from October 2021|Scripting Language]] | |||
[[Category:CS1 English-language sources (en)]] | |||
[[Category:CS1 maint]] | |||
[[Category:Collapse templates|Scripting Language]] | |||
[[Category:Commons category link is locally defined|Scripting Language]] | |||
[[Category:Created On 16/03/2023|Scripting Language]] | |||
[[Category:Lua-based templates|Scripting Language]] | |||
[[Category:Machine Translated Page|Scripting Language]] | |||
[[Category:Multi-column templates|Scripting Language]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists|Scripting Language]] | |||
[[Category:Pages using div col with small parameter|Scripting Language]] | |||
[[Category:Pages with script errors|Scripting Language]] | |||
[[Category:Short description with empty Wikidata description|Scripting Language]] | |||
[[Category:Sidebars with styles needing conversion|Scripting Language]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready|Scripting Language]] | |||
[[Category:Templates generating microformats|Scripting Language]] | |||
[[Category:Templates that add a tracking category|Scripting Language]] | |||
[[Category:Templates that are not mobile friendly|Scripting Language]] | |||
[[Category:Templates that generate short descriptions|Scripting Language]] | |||
[[Category:Templates using TemplateData|Scripting Language]] | |||
[[Category:Templates using under-protected Lua modules|Scripting Language]] | |||
[[Category:Webarchive template wayback links|Scripting Language]] | |||
[[Category:Wikipedia articles needing clarification from April 2019|Scripting Language]] | |||
[[Category:Wikipedia fully protected templates|Div col]] | |||
[[Category:Wikipedia metatemplates|Scripting Language]] | |||
[[Category:जावा कोड उदाहरण के साथ लेख|Scripting Language]] | |||
[[Category:प्रोग्रामिंग प्रतिमान|Scripting Language]] | |||
[[Category:स्क्रिप्टिंग भाषाएं| स्क्रिप्टिंग भाषाएं]] |
Latest revision as of 10:47, 11 April 2023
एक स्क्रिप्टिंग भाषा या स्क्रिप्ट भाषा एक ऐसी प्रोग्रामिंग भाषा है जिसका उपयोग किसी वर्तमान प्रणाली की सुविधाओं में युक्तियोजित करने, अनुकूलित करने और स्वचालित करने के लिए किया जाता है।[1] स्क्रिप्टिंग भाषा सामान्यतः संकलक के अतिरिक्त क्रम(निष्पादन जीवनचक्र चरण) पर इंटरप्रेटर(कंप्यूटिंग) होती हैं।
स्क्रिप्टिंग भाषा के साधारण सामान्यतः प्राथमिक कार्य या एपीआई कॉल होती हैं,[clarification needed] और स्क्रिप्टिंग भाषा उन्हें अधिक प्रोग्रामों में संयोजित करने की अनुमति देती है। स्क्रिप्टिंग के माध्यम से स्वचालित किए जा सकने वाले संदर्भ में एप्लिकेशन सॉफ्टवेयर, टेक्स्ट एडिटर्स, वेब पृष्ठ, ऑपरेटिंग सिस्टम शैल स्क्रिप्ट, अंतः स्थापित प्रणाली और कंप्यूटर गेम सम्मिलित हैं। किसी विशेष संदर्भ के लिए स्क्रिप्टिंग भाषा को एक डोमेन-विशिष्ट भाषा के रूप में देखा जा सकता है; किसी एप्लिकेशन को स्क्रिप्ट करने की स्थिति में, इसे एक्सटेंशन भाषा के रूप में भी जाना जाता है। स्क्रिप्टिंग भाषाओं को कभी-कभी बहु उच्च स्तरीय प्रोग्रामिंग भाषा रूप में भी संदर्भित किया जाता है, क्योंकि वे कभी-कभी उच्च स्तर के अमूर्तता पर या नियंत्रण भाषाओं के रूप में संचालित होती हैं, विशेष रूप से मेनफ्रेम पर कार्य नियंत्रण भाषाओं के लिए।
'स्क्रिप्टिंग भाषा' शब्द का प्रयोग व्यापक अर्थ में भी किया जाता है, अर्थात्, गतिशील प्रोग्रामिंग भाषा उच्च स्तरीय भाषा / हाई-लेवल सामान्य उद्देश्य प्रोग्रामिंग भाषा सामान्य रूप से संदर्भित करने के लिए; कुछ दृढ़ता से व्याख्या की जाने वाली भाषाएं हैं, जबकि अन्य संकलन के रूप का उपयोग करते हैं। इस संदर्भ में, स्क्रिप्ट शब्द ऐसी भाषा में छोटे प्रोग्राम को संदर्भित करता है; सामान्यतः, एकल फ़ाइल में समाहित होता है, और कोड की कुछ हज़ार पंक्तियों से बड़ी नहीं होती है।
स्क्रिप्टिंग भाषाओं का विस्तार छोटे से लेकर बड़े और अत्यधिक डोमेन-विशिष्ट भाषा से लेकर सामान्य-उद्देश्य वाली प्रोग्रामिंग भाषाओं तक होते है। भाषा छोटी और अत्यधिक डोमेन-विशिष्ट के रूप में प्रारम्भ हो सकती है और बाद में एक पोर्टेबल और सामान्य-उद्देश्य वाली भाषा में विकसित हो सकती है; इसके विपरीत, एक सामान्य-उद्देश्य वाली भाषा बाद में विशेष डोमेन-विशिष्ट उपभाषाओं का विकास कर सकती है।
उदाहरण
- एडब्ल्यूके, अधिकांश यूनिक्स जैसे ऑपरेटिंग सिस्टम में उपलब्ध एक टेक्स्ट-प्रोसेसिंग भाषा है, जिसे अन्य ऑपरेटिंग सिस्टम में पोर्ट किया गया है।
- बैश(यूनिक्स शेल), यूनिक्स, जीएनयू और अन्य यूनिक्स जैसे ऑपरेटिंग सिस्टम और संदर्भ पर उपयोग के लिए एक व्याख्या की गई स्क्रिप्टिंग भाषा।
- ग्रूवी(प्रोग्रामिंग भाषा) जावा प्लेटफॉर्म के लिए एक ऑब्जेक्ट-ओरिएंटेड स्क्रिप्टिंग भाषा है, जो पायथन(प्रोग्रामिंग भाषा), रूबी(प्रोग्रामिंग भाषा) और स्मॉलटॉक(प्रोग्रामिंग भाषा) के समान है।
- एकमा स्क्रिप्ट(बाद में: ईसीएमएस्क्रिप्ट), मूल रूप से एक बहुत छोटी, अत्यधिक डोमेन-विशिष्ट भाषा, जो वेब पेज को गतिशील रूप से संशोधित करने के लिए एक वेब ब्राउज़र के भीतर चलने तक सीमित है, जो बाद में व्यापक रूप से पोर्टेबल सामान्य उद्देश्य प्रोग्रामिंग भाषा में विकसित हुई।
- लिस्प(प्रोग्रामिंग भाषा), विशिष्ट एप्लिकेशनों के लिए सामान्य-उद्देश्य वाली भाषाओं और एक्सटेंशन भाषाओं का एक वर्ग, उदा. एमेक्स लिस्प, एमेक्स एडिटर्स के लिए।
- लुआ(प्रोग्रामिंग भाषा), सामान्य रूप से एप्लिकेशनों के लिए एक एक्सटेंशन भाषा के रूप में उपयोग करने के लिए डिज़ाइन की गई भाषा, कई अलग-अलग एप्लिकेशनों द्वारा उपयोग की जाती है।
- पर्ल,[2] एक टेक्स्ट-प्रोसेसिंग भाषा जो बाद में एक सामान्य-उद्देश्य वाली भाषा के रूप में विकसित हुई, जिसे विभिन्न एप्लिकेशनों के लिए एक एक्सटेंशन भाषा के रूप में भी उपयोग किया गया।
- पावरशेल, एक स्क्रिप्टिंग भाषा जो मूल रूप से माइक्रोसॉफ़्ट विंडोज़ के साथ उपयोग के लिए है परन्तु बाद में मैक ओएस और लिनक्स के लिए भी उपलब्ध है।
- पायथन(प्रोग्रामिंग भाषा), सरल सिंटैक्स वाली एक सामान्य-उद्देश्य वाली स्क्रिप्टिंग भाषा, विशेष रूप से टेक्स्ट प्रोसेसिंग के अनुकूल और एक एक्सटेंशन भाषा के रूप में भी उपयोग की जाती है।
- रेक्स, आईबीएम के वीएम/एसपी आर3 में एक स्क्रिप्टिंग भाषा। नेटरेक्स और ऑब्जेक्ट रेक्स रेक्स पर आधारित हैं। कई प्लेटफार्मों पर उपयोग किया जाता है। एप्लिकेशनों के लिए एक्सटेंशन भाषाओं के रूप में भी उपयोग किया जाता है।
- रूबी(प्रोग्रामिंग भाषा), एक सामान्य उद्देश्य प्रोग्रामिंग भाषा जो कई प्रोग्रामिंग प्रतिमानों का समर्थन करती है। इसे उत्पादकता और सरलता पर प्रमुखता देने के साथ डिजाइन किया गया था।
- एसईडी, अधिकांश यूनिक्स जैसे ऑपरेटिंग सिस्टम में उपलब्ध एक टेक्स्ट-प्रोसेसिंग भाषा, जिसे अन्य ऑपरेटिंग सिस्टम में पोर्ट किया गया है।
- टीसीएल,[3] यूनिक्स जैसे संदर्भ के लिए स्क्रिप्टिंग भाषा, जो 1990 के दशक में लोकप्रिय थी। जीयूआई एप्लिकेशनों को विकसित करने के लिए टीसी(सॉफ्टवेयर) के संयोजन के साथ प्रयोग किया जा सकता है।
- एप्लिकेशनों के लिए विज़ुअल बेसिक(वीबीए), विशेष रूप से माइक्रोसॉफ़्ट ऑफिस एप्लिकेशनों के लिए विकसित एक्सटेंशन भाषा है, और कई गैर-माइक्रोसॉफ़्ट एप्लिकेशनों में कम से कम आंशिक रूप से लागू की गई है।
कुछ गेम प्रणाली को व्यापक रूप से विशिष्ट भाषाओं का उपयोग करके स्क्रिप्टिंग एक्सटेंशन द्वारा कार्यक्षमता में विस्तारित किया गया है, विशेष रूप से सेकंड लाइफ वर्चुअल वर्ल्ड(लिंडन स्क्रिप्टिंग भाषा का उपयोग करके) और रेलरोड सिमुलेटर के ट्रेन्ज़ फ़्रैंचाइज़ी(ट्रेनज़स्क्रिप्ट का उपयोग करके)। कुछ गेमों में, जैसे वेस्नोथ, उपयोगकर्ता उपयोगकर्ता द्वारा योगदान की गई स्क्रिप्ट द्वारा परिभाषित गेम के विशिष्ट संस्करण खेल सकते हैं।
विशेषताएं
विशिष्ट स्क्रिप्टिंग भाषाओं को सीखने और लिखने के लिए बहुत तीव्र होने के विचार है, या तो लघु स्रोत कोड फ़ाइलों के रूप में या अंतःक्रियात्मक रूप से रीड-इवल-प्रिंट लूप(आरईपीएल, भाषा शेल) में।[4] यह सामान्यतः अपेक्षाकृत सरल सिंटेक्स(प्रोग्रामिंग भाषा) और सीमेन्टिकी(कंप्यूटर विज्ञान) के तात्पर्य है; सामान्यतः एक स्क्रिप्ट(स्क्रिप्टिंग भाषा में लिखा गया कोड) को स्क्रिप्ट के रूप में प्रारम्भ से अंत तक निष्पादित किए जाते है, जिसमें कोई स्पष्ट प्रवेश बिंदु नहीं होते है।
उदाहरण के लिए, जावा(प्रोग्रामिंग भाषा) को एक स्क्रिप्टिंग भाषा के रूप में वर्णित करना असामान्य है क्योंकि इसके लंबे सिंटैक्स और नियमों के विषय में कि कौन सी फाइलें किस वर्ग में स्थित हैं, और जावा को अंतःक्रियात्मक रूप से निष्पादित करना सीधे संभव नहीं है, क्योंकि स्रोत फ़ाइलों में मात्र परिभाषाएँ हो सकती हैं जिसे किसी होस्ट एप्लिकेशन या एप्लिकेशन लॉन्चर द्वारा बाहरी रूप से लागू किए जाने चाहिए।
public class HelloWorld {
public void printHelloWorld() {
System.out.println("Hello World");
}
}
कोड का यह भाग हैलो वर्ल्ड को प्रिंट करने के लिए कुछ भी नहीं करता है क्योंकि मुख्य() को 'हैलोवर्ल्ड' वर्ग में घोषित नहीं किया गया है, यद्यपि नीचे वाला उपयोगी होगा।
public class HelloWorld {
public void printHelloWorld() {
System.out.println("Hello World");
}
public static void main(String[] args) {
printHelloWorld();
}
}
उपरोक्त उदाहरण में, मुख्य परिभाषित किया गया है और इसलिए इसे लॉन्चर द्वारा लागू किया जा सकता है, यद्यपि यह अभी भी अंतःक्रियात्मक रूप से निष्पादित नहीं किए जा सकते है। इसके विपरीत, पायथन(कंप्यूटर भाषा) फ़ाइल में कुछ कार्यों की परिभाषा की अनुमति देते है, या कार्यों से पूर्ण रूप से बचने और अनिवार्य प्रोग्रामिंग शैली का उपयोग करने या यहां तक कि इसे अंतःक्रियात्मक रूप से उपयोग करने की अनुमति देते है।
print("Hello World")
पायथन कोड की यह एक पंक्ति हैलो वर्ल्ड प्रिंट करती है; यहाँ main() जैसा कोई घोषणात्मक कथन आवश्यक नहीं है।
एक स्क्रिप्टिंग भाषा सामान्यतः स्रोत कोड या बाईटकोड से व्याख्या की गई भाषा होती है।[5] इसके विपरीत, जिस सॉफ़्टवेयर संदर्भ(दुभाषिया) के लिए स्क्रिप्ट लिखी जाती है, वह सामान्यतः एक संकलित भाषा में लिखी जाती है और मशीन कोड के रूप में वितरित की जाती है।
स्क्रिप्टिंग भाषाओं को प्रोग्राम के अंतिम उपयोगकर्ताओं द्वारा उपयोग के लिए डिज़ाइन किया जा सकता है - अंतिम उपयोगकर्ता विकास - या मात्र डेवलपर्स द्वारा आंतरिक उपयोग के लिए हो सकता है, इसलिए वे स्क्रिप्टिंग भाषा में प्रोग्राम के अंश लिख सकते हैं। स्क्रिप्टिंग भाषाएं सामान्यतः अमूर्त(कंप्यूटर विज्ञान) का उपयोग करती हैं, जो सूचना छिपाने का एक रूप है, उपयोगकर्ताओं को आंतरिक चर प्रकार, डेटा संग्रहण और मेमोरी प्रबंधन के विवरण को अलग करने के लिए।
स्क्रिप्ट को प्रायः निष्पादित करने वाले व्यक्ति द्वारा बनाया या संशोधित किया जाता है,[6] परन्तु उन्हें प्रायः वितरित भी किया जाता है, जैसे कि जब गेम के बड़े भाग को स्क्रिप्टिंग भाषा में लिखे जाते है, विशेष रूप से गूगल क्रोम टी-रेक्स गेम।
इतिहास
प्रारंभिक मेनफ़्रेम कंप्यूटर(1950 के दशक में) बैच प्रोसेसिंग का उपयोग करने के अतिरिक्त गैर-अन्योन्यक्रिया थे। आईबीएम की कार्य नियंत्रण भाषा(जेसीएल) बैच प्रोसेसिंग को नियंत्रित करने के लिए उपयोग की जाने वाली भाषाओं के मूलरूप है।[7]
प्रथम अन्योन्यक्रिया शेल(कंप्यूटिंग) को 1960 के दशक में प्रथम बार साझा करने वाली प्रणालियों के दूरस्थ संचालन को सक्षम करने के लिए विकसित किया गया था, और ये शेल स्क्रिप्ट् का उपयोग करते थे, जो कंप्यूटर प्रोग्राम, शेल के भीतर चलने वाले कंप्यूटर प्रोग्राम को नियंत्रित करते थे। अपनी टीआरएसी(प्रोग्रामिंग भाषा) भाषा में केल्विन मूर्स को सामान्यतः कमांड प्रतिस्थापन का आविष्कार करने का श्रेय दिया जाता है, जो स्क्रिप्ट में कमांड को अंत: स्थापित करने की क्षमता होती है, जब व्याख्या की जाती है तो स्क्रिप्ट में एक अक्षर स्ट्रिंग डालें।[8] मॉलटिक्स इन सक्रिय कार्यों को कहते हैं।[9] लुई पॉज़िन ने 1964 के समीप संगत समय-साझाकरण प्रणाली के लिए रनकॉम नामक कमांड स्क्रिप्ट के लिए एक प्रारंभिक प्रोसेसर लिखा। एमआईटी में स्टुअर्ट मैडनिक ने 1966 में आईबीएम के सीपी/सीएमएस के लिए एक स्क्रिप्टिंग भाषा लिखी। उन्होंने मूल रूप से इस प्रोसेसर को COMMAND कहा, जिसे बाद में सीएमएस ईएक्सईसी नाम दिया गया।[10] मल्टिक्स में CTSS रनकॉम की शाखा सम्मिलित है, जिसे रनकॉम भी कहा जाता है।[11] सीएमएस ईएक्सईसी को अंततः ईएक्सईसी 2 और रेक्स द्वारा बदल दिया गया।
टीसीएल और लुआ(प्रोग्रामिंग भाषा) जैसी भाषाओं को विशेष रूप से सामान्य-उद्देश्य वाली स्क्रिप्टिंग भाषाओं के रूप में डिज़ाइन किया गया था जिसे किसी भी एप्लिकेशन में अंत: स्थापित किया जा सकता है। अन्य भाषाओं जैसे एप्लिकेशनों के लिए विजुअल बेसिक(वीबीए) ने अंतर्निहित प्रणाली की स्वचालन सुविधाओं के साथ सुस्थिर एकीकरण प्रदान किया। प्रत्येक एप्लिकेशन के लिए एक नवीन भाषा विकसित करने के अतिरिक्त ऐसी सामान्य-उद्देश्य वाली स्क्रिप्टिंग भाषाओं को अंत: स्थापित करना भी स्पष्ट लाभ था, जिससे एप्लिकेशन डेवलपर को भाषा अनुवादक को स्क्रैच से कोड करने की आवश्यकता से राहत मिली और उपयोगकर्ता को कहीं और सीखे गए कौशल को लागू करने की अनुमति मिली।
कुछ सॉफ़्टवेयर में कई अलग-अलग स्क्रिप्टिंग भाषाएँ सम्मिलित होती हैं। आधुनिक वेब ब्राउज़र सामान्यतः ब्राउज़र को एक्सटेंशन लिखने के लिए एक भाषा प्रदान करते हैं, और ब्राउज़र को नियंत्रित करने के लिए कई मानक अंत: स्थापित भाषाएं प्रदान करते हैं, जिनमें जावास्क्रिप्ट(ईसीएमएस्क्रिप्ट की एक उपभाषा) या एक्सयूएल सम्मिलित है।
प्रकार
स्क्रिप्टिंग भाषाओं को कई अलग-अलग प्रकारों में वर्गीकृत किया जा सकता है, जिनमें प्रकारों के बीच विचारणीय अधिव्यापन होता है।
ग्लू भाषाएं
स्क्रिप्टिंग को प्रायः प्रणाली प्रोग्रामिंग के विपरीत माना जाता है, जैसा कि ऑस्टरहाउट के द्विभाजन या बड़े में प्रोग्रामिंग और छोटे में प्रोग्रामिंग के रूप में होता है। इस दृष्टि से, स्क्रिप्टिंग ग्लू कोड है, जो सॉफ्टवेयर अवयवों को जोड़ता है, और इस उद्देश्य के लिए विशेषीकृत भाषा ग्लू भाषा है। पाइपलाइन और शेल स्क्रिप्टिंग ग्लू भाषाओं के मूल उदाहरण हैं, और पर्ल को प्रारम्भ में इसी भूमिका को भरने के लिए विकसित किया गया था। वेब विकास को ग्लू भाषा का उपयोग माना जा सकता है, जो डेटाबेस और वेब सर्वर के बीच इंटरफेसिंग करता है। परन्तु यदि स्क्रिप्ट में पर्याप्त मात्रा में तर्क लिखा जाता है, तो इसे मात्र एक अन्य सॉफ्टवेयर अवयव के रूप में जाना जाता है, न कि ग्लू के रूप में।
ग्लू भाषा विशेष रूप से लिखने और बनाए रखने के लिए उपयोगी हैं:
- कमांड शेल के लिए विशिष्ट कमांड;[12]
- उन प्रोग्रामों की तुलना में छोटे प्रोग्राम जिन्हें संकलित भाषा में ठीक विधि से कार्यान्वित किया जाता है;[13]
- निष्पादनयोग्य के लिए रैपर प्रोग्राम, जैसे एक बैच फ़ाइल जो फ़ाइलों को स्थानांतरित या युक्तियोजित करती है और ऑपरेटिंग सिस्टम के साथ अन्य कार्य करती है जैसे वर्ड प्रोसेसर, स्प्रेडशीट, डेटा बेस, असेंबलर, कंपाइलर, आदि;[14]
- स्क्रिप्ट जो बदल सकती हैं;[15]
- हल को तीव्रता से एप्लिकेशन विकास अंततः दूसरे, सामान्यतः संकलित, भाषा में कार्यान्वित किया जाता है।[citation needed]
ग्लू भाषा उदाहरण:
- एप्पलस्क्रिप्ट
- शीत गलन
- डिजिटल कमांड भाषा
- अंत:स्थापित करने योग्य सामान्य लिस्प
- ईसीएल प्रोग्रामिंग भाषा
- एरलांग (प्रोग्रामिंग भाषा)
- सीएमएस कार्यकारी
- ईएक्सईसी2
- कार्य नियंत्रण भाषा
- कॉफीस्क्रिप्ट
- जूलिया (प्रोग्रामिंग भाषा)
- जेस्क्रिप्ट और जावास्क्रिप्ट
- लुआ (प्रोग्रामिंग भाषा)
- एम 4 (कंप्यूटर भाषा)
- पर्ल (5 और राकू (प्रोग्रामिंग भाषा))
- पीएचपी
- विंडोज पॉवरशेल
- शुद्ध (प्रोग्रामिंग भाषा)
- पायथन (प्रोग्रामिंग भाषा)
- रिबोल
- लाल (प्रोग्रामिंग भाषा)
- रेक्स
- नेटरेक्स
- रूबी (प्रोग्रामिंग भाषा)
- योजना (प्रोग्रामिंग भाषा)
- टीसीएल
- यूनिक्स शैल स्क्रिप्ट (के शेल , सी खोल , बैश (यूनिक्स शेल), बॉर्न शेल और अन्य)
- वीबीस्क्रिप्ट
- कार्य प्रवाह भाषा
- एक्सएसएलटी
ऑपरेटिंग सिस्टम या एप्लिकेशन अवयवों के संपर्क में आने वाली मैक्रो(कंप्यूटर विज्ञान) भाषाएं ग्लू भाषाओं के रूप में कार्य कर सकती हैं। इनमें एप्लिकेशन के लिए विजुअल बेसिक, वर्डबेसिक, लोटसस्क्रिप्ट, कोरलस्क्रिप्ट, हमिंगबर्ड बेसिक, क्विकस्क्रिप्ट, रेक्स, us/library/ms994312.aspx सैक्सबेसिक, और विनरैप बेसिक सम्मिलित हैं।। एडब्ल्यूके जैसे अन्य उपकरणों को भी ग्लू भाषा माना जा सकता है, जैसा कि विंडोज़ स्क्रिप्ट होस्ट इंजन(वीबीस्क्रिप्ट, जेस्क्रिप्ट और वीबीए द्वारा विंडोज़ में डिफ़ॉल्ट रूप से लागू किया जा सकता है और रेक्स, पर्ल, टीसीएल, पाइथन, एक्सएसएलटी के कार्यान्वयन सहित तृतीय-पक्ष इंजन, रूबी, मॉडर्न पास्कल, डेल्फी और सी)। अधिकांश एप्लिकेशन ऑब्जेक्ट मॉडल या अपने स्वयं के कार्यों के माध्यम से ऑपरेटिंग सिस्टम अवयवों का उपयोग और उपयोग कर सकते हैं।
प्रोग्रामेबल कैलकुलेटर जैसे अन्य उपकरणों में भी ग्लू भाषा हो सकती हैं; विंडोज सीई जैसे पीडीए के ऑपरेटिंग सिस्टम में देशी या तीसरे पक्ष के मैक्रो उपकरण उपलब्ध हो सकते हैं जो सामान्य ग्लू भाषाओं के कार्यान्वयन के अतिरिक्त एप्लिकेशनों को एक साथ जोड़ते हैं - जिसमें विंडोज एनटी, डॉस और कुछ यूनिक्स शेल, रेक्स, मॉडर्न पास्कल, पीएचपी और पर्ल सम्मिलित हैं। ओएस संस्करण के आधार पर, डब्ल्यूएसएच और डिफ़ॉल्ट स्क्रिप्ट इंजन(वीबीस्क्रिप्ट और जेस्क्रिप्ट) उपलब्ध हैं।
प्रोग्रामेबल कैलकुलेटर को ग्लू भाषाओं में तीन विधियों से प्रोग्राम किया जा सकता है। उदाहरण के लिए, टेक्सस उपकरण टीआई-92, फ़ैक्टरी डिफ़ॉल्ट रूप से कमांड स्क्रिप्ट भाषा के साथ प्रोग्राम किया जा सकता है। कैलकुलेटर की टीआई-एनस्पायर श्रृंखला में स्क्रिप्टिंग और ग्लू भाषा लुआ(प्रोग्रामिंग भाषा) को सम्मिलित करने को इसके आनुक्रमिक के रूप में देखा जा सकता है। अधिकांश रेखांकन कैलकुलेटरों की प्राथमिक ऑन-बोर्ड उच्च-स्तरीय प्रोग्रामिंग भाषाएं(प्रायः मूल प्रकार, कभी-कभी लिस्प व्युत्पन्न, और अधिक असामान्य रूप से, C व्युत्पन्न) कई स्थितियों में कैलकुलेटर क्रिया को एक साथ ग्लू कर सकती हैं - जैसे ग्राफ़, सूचियाँ, आव्यूह, आदि। अधिक व्यापक मूल संस्करण के तृतीय-पक्ष कार्यान्वयन जो इस लेख में ग्लू भाषाओं के रूप में सूचीबद्ध प्रकार के समीप हो सकते हैं- और टीआई और एचपी ग्राफिंग कैलकुलेटर पर पर्ल, रेक्स या विभिन्न ऑपरेटिंग सिस्टम शेल को लागू करने के प्रयासों का भी उल्लेख किया गया है। C और पर्ल, रेक्स, एडब्ल्यूके, और शेल स्क्रिप्ट को पर्ल, मॉडर्न पास्कल, वीबीस्क्रिप्ट से और पर्ल के बीच परिवर्तन करने वाले उपकरणों के साथ उपयोग की जाने वाली कुछ टीआई और एचपी मशीनों के लिए पीसी-आधारित C पार संकलक का उपयोग कैलकुलेटर पर अंतिम कार्यान्वयन(संकलित प्रोग्राम के रूप में) के लिए ग्लू भाषा में एक प्रोग्राम लिखना संभव बनाती हैं।[citation needed]
एडिटर्स भाषाएं
कई टेक्स्ट एडिटर्स एडिटर्स में निर्मित मैक्रो भाषा का उपयोग करके लिखे गए मैक्रोज़ का समर्थन करते हैं, उदाहरण के लिए, सेमवेयर एडिटर्स(टीएसई), विम(टेक्स्ट एडिटर्स) (वीआईएम), या बाहरी कार्यान्वयन का उपयोग करते हुए, उदाहरण के लिए, एक्सईडीआईटी, या दोनों, उदा., KEDIT। कभी-कभी टेक्स्ट एडिटर्स और एडिट मैक्रोज़ का उपयोग अन्य एप्लिकेशन प्रदान करने के लिए आच्छादन के अंतर्गत किया जाता है, उदाहरण के लिए, संवादी मॉनिटर प्रणाली में फाइललिस्ट और आरडीआरएलआईएसटी।
कार्य नियंत्रण भाषाएं और शेल
स्क्रिप्टिंग भाषाओं का एक प्रमुख वर्ग कार्य नियंत्रण(कंप्यूटिंग) के स्वचालन से विकसित हुआ है, जो प्रणाली प्रोग्राम के व्यवहार को प्रारम्भ करने और नियंत्रित करने से संबंधित है।[16](इस अर्थ में, कोई गोले को आईबीएम की जेसीएल, या कार्य नियंत्रण भाषा के वंशज होने के विषय में सोच सकता है, जिसका उपयोग इस उद्देश्य के लिए किया गया था)। इनमें से कई भाषाओं के दुभाषिए यूनिक्स शेल या एमएस-डॉस COMMAND.COM
जैसे कमांड-लाइन दुभाषियों के रूप में दोगुने हैं। अन्य, जैसे कि एप्पलस्क्रिप्ट स्क्रिप्ट बनाने के लिए अंग्रेजी जैसी कमांड का उपयोग करने की प्रस्तुति करते हैं।
जीयूआई स्क्रिप्टिंग
ग्राफिकल यूजर इंटरफेस के आगमन के साथ, कंप्यूटर को नियंत्रित करने के लिए विशेष प्रकार की स्क्रिप्टिंग भाषा का उदय हुआ। ये भाषाएं उन्हीं ग्राफ़िक विंडो, मेनू, बटन आदि के साथ अन्तः क्रिया करती हैं, जो एक मानव उपयोगकर्ता करता है। वे उपयोगकर्ता के कार्यों का अनुकरण करके ऐसा करते हैं। इन भाषाओं का उपयोग सामान्यतः उपयोगकर्ता क्रियाओं को स्वचालित करने के लिए किया जाता है। ऐसी भाषाओं को मैक्रो(कंप्यूटर विज्ञान) कीबोर्ड और माउस मैक्रोज़ भी कहा जाता है जब नियंत्रण सिम्युलेटेड कुंजी प्रेस या माउस क्लिक के माध्यम से होता है, साथ ही टच-सक्रिय स्क्रीन पर टैपिंग या प्रेसिंग के माध्यम से होता है।
सिद्धांत रूप में इन भाषाओं का उपयोग किसी भी जीयूआई एप्लिकेशन को नियंत्रित करने के लिए किया जा सकता है; परन्तु, व्यवहार में उनका उपयोग सीमित है क्योंकि उनके उपयोग के लिए एप्लिकेशन और ऑपरेटिंग सिस्टम से समर्थन की आवश्यकता होती है। इस सीमा के कुछ अपवाद हैं। कुछ जीयूआई स्क्रिप्टिंग भाषाएं ग्राफिकल ऑब्जेक्ट् को उनके डिस्प्ले स्क्रीन पिक्सेल से पहचानने पर आधारित होती हैं। ये जीयूआई स्क्रिप्टिंग भाषाएँ ऑपरेटिंग सिस्टम या एप्लिकेशन के समर्थन पर निर्भर नहीं करती हैं।
जब जीयूआई उपयुक्त इंटरफेस प्रदान करता है, जैसे कि आईबीएम कार्यस्थल शेल में, सामान्य स्क्रिप्टिंग भाषा, उदा. ओरेक्स, जीयूआई स्क्रिप्ट लिखने के लिए उपयोग किया जा सकता है।
एप्लिकेशन-विशिष्ट भाषाएं
एप्लिकेशन विशिष्ट भाषाओं को कई अलग-अलग श्रेणियों में विभाजित किया जा सकता है, अर्थात स्टैंडअलोन आधारित ऐप भाषाएँ(निष्पादन योग्य) या आंतरिक एप्लिकेशन विशिष्ट भाषाएँ(पोस्टस्क्रिप्ट, एक्सएमएल, जीस्क्रिप्ट कुछ व्यापक रूप से वितरित स्क्रिप्ट के रूप में, क्रमशः एडोब, एमएस और गूगल द्वारा कार्यान्वित) अन्य में सम्मिलित हैं एप्लिकेशन उपयोगकर्ता की आवश्यकताओं के अनुरूप एक सिद्धप्रयुक्त स्क्रिप्टिंग भाषा। इसी प्रकार, कई कंप्यूटर गेम प्रणाली गैर-प्लेयर पात्रों और गेम के संदर्भ के क्रमादेशित कार्यों को व्यक्त करने के लिए एक विशिष्ट स्क्रिप्टिंग भाषा का उपयोग करते हैं। इस प्रकार की भाषाएँ एक ही एप्लिकेशन के लिए डिज़ाइन की गई हैं; और, जबकि वे सतही रूप से विशिष्ट सामान्य-उद्देश्य वाली भाषा से मिलते-जुलते हो सकते हैं(उदाहरण के लिए क्वेकसी, C के बाद प्रतिरूपित), उनके समीप विशिष्ट विशेषताएं हैं जो उन्हें अलग करती हैं। एमेक्स लिस्प, जबकि लिस्प(प्रोग्रामिंग भाषा) की पूर्ण रूप से गठित और सक्षम उपभाषा, में कई विशेष विशेषताएं सम्मिलित हैं जो इसे एमेक्स के संपादन कार्यों को विस्तारित करने के लिए सबसे उपयोगी बनाती हैं। एक एप्लिकेशन-विशिष्ट स्क्रिप्टिंग भाषा को एक डोमेन-विशिष्ट प्रोग्रामिंग भाषा के रूप में देखा जा सकता है जो एकल एप्लिकेशन के लिए विशिष्ट है।
एक्सटेंशन/ अंत: स्थापित करने योग्य भाषाएं
एप्लिकेशन-विशिष्ट स्क्रिप्टिंग भाषाओं को एप्लिकेशन प्रोग्राम में अंत: स्थापित करने योग्य बनाने के उद्देश्य से कई भाषाओं को डिज़ाइन किया गया है। एप्लिकेशन प्रोग्रामर(सी या अन्य प्रणाली भाषा में कार्य कर रहे) में हुक सम्मिलित हैं जहां स्क्रिप्टिंग भाषा एप्लिकेशन को नियंत्रित कर सकती है। ये भाषाएँ तकनीकी रूप से किसी एप्लिकेशन-विशिष्ट एक्सटेंशन भाषा के समतुल्य हो सकती हैं, परन्तु जब कोई एप्लिकेशन सामान्य भाषा को अंत: स्थापित करता है, तो उपयोगकर्ता को एप्लिकेशन से एप्लिकेशन में कौशल स्थानांतरित करने में सक्षम होने का लाभ मिलता है। अधिक सामान्य विकल्प मात्र एक लाइब्रेरी(प्रायः एक C लाइब्रेरी) प्रदान करना है, जिसका उपयोग सामान्य-उद्देश्य वाली भाषा विशिष्ट डोमेन के लिए भाषा को संशोधित किए बिना, एप्लिकेशन को नियंत्रित करने के लिए कर सकती है।
जावास्क्रिप्ट के रूप में प्रारम्भ हुआ और मुख्य रूप से अभी भी वेब ब्राउज़र के अंदर स्क्रिप्टिंग के लिए एक भाषा है; यद्यपि, एकमास्क्रिप्ट के रूप में भाषा के मानकीकरण ने इसे सामान्य-उद्देश्य वाली अंत: स्थापित करने योग्य भाषा के रूप में लोकप्रिय बना दिया है। विशेष रूप से, मोज़िल्ला कार्यान्वयन स्पाइडरमंकी(जावास्क्रिप्ट इंजन) याहू!, विजेट इंजन जैसे कई संदर्भों में सन्निहित है। ईसीएमएस्क्रिप्ट कार्यान्वयन को अंत: स्थापित करने वाले अन्य एप्लिकेशनों में एडोब प्रणाली् उत्पाद एडोब फ्लैश(एक्शनस्क्रिप्ट) और एडोबी एक्रोबैट(पीडीएफ फाइलों की स्क्रिप्टिंग के लिए) सम्मिलित हैं।
टीसीएल को एक एक्सटेंशन भाषा के रूप में बनाया गया था, परन्तु पायथन(प्रोग्रामिंग भाषा), पर्ल, और रूबी(प्रोग्रामिंग भाषा) जैसी भूमिकाओं में सामान्य-उद्देश्य वाली भाषा के रूप में अधिक बार उपयोग किया जाने लगा है। दूसरी ओर, रेक्स मूल रूप से एक कार्य नियंत्रण भाषा के रूप में बनाया गया था, परन्तु व्यापक रूप से एक एक्सटेंशन भाषा के साथ-साथ एक सामान्य-उद्देश्य वाली भाषा के रूप में उपयोग किया जाता है। पर्ल सामान्य-उद्देश्य वाली भाषा है, परन्तु इसमें ऑपरल(1990) उपभाषा थी, जिसमें पर्ल 4 बाइनरी सम्मिलित थी जिसमें ओरेकल कॉल इंटरफ़ेस संकलित था। यद्यपि इसे बाद में एक लाइब्रेरी(पर्ल मॉड्यूल), [1] द्वारा बदल दिया गया है। .org/module/DBD::Oracle DBD::Oracle]।[17][18]
अन्य जटिल और कार्य-उन्मुख एप्लिकेशन एक अंत: स्थापित प्रोग्रामिंग भाषा को सम्मिलित और अनावृत कर सकते हैं ताकि उनके उपयोगकर्ताओं को अधिक नियंत्रण की अनुमति मिल सके और उन्हें उपयोगकर्ता इंटरफ़ेस के माध्यम से उपलब्ध होने की तुलना में अधिक कार्यक्षमता प्रदान की जा सके, चाहे वह कितना भी परिष्कृत क्यों न हो। उदाहरण के लिए, ऑटोडेस्क माया 3डी संलेखन उपकरण माया अंतःस्थापित भाषा, या ब्लेंडर(सॉफ्टवेयर) को अंत: स्थापित करता है जो इस भूमिका को भरने के लिए पायथन(प्रोग्रामिंग भाषा) का उपयोग करता है।
कुछ अन्य प्रकार के एप्लिकेशन जिन्हें तीव्र फीचर जोड़ने या ट्वीक-एंड-रन साइकिल(जैसे गेम यंत्र) की आवश्यकता होती है, वे भी एक अंत: स्थापित भाषा का उपयोग करते हैं। विकास के समय, यह उन्हें प्रोटोटाइप सुविधाओं को तीव्रता से और अधिक स्वतंत्र रूप से ट्वीक करने की अनुमति देता है, बिना उपयोगकर्ता को एप्लिकेशन के आंतरिक कार्यकारी के गहन ज्ञान की आवश्यकता के बिना या प्रत्येक ट्वीक के बाद इसे फिर से बनाने के लिए(जिसमें अत्यधिक समय लग सकता है)। इस उद्देश्य के लिए उपयोग की जाने वाली स्क्रिप्टिंग भाषाएँ अधिक सामान्य और अधिक प्रसिद्ध लुआ(प्रोग्रामिंग भाषा) और पायथन(प्रोग्रामिंग भाषा) से लेकर एंजेलस्क्रिप्ट और गिलहरी(प्रोग्रामिंग भाषा) जैसी कम-ज्ञात हैं।
Ch(कंप्यूटर प्रोग्रामिंग) उद्योग के लिए C/C++ एप्लिकेशन प्रोग्राम में अंत: स्थापित करने के लिए एक और C संगत स्क्रिप्टिंग विकल्प है।
यह भी देखें
- स्थापत्य विवरण भाषा
- संलेखन भाषा
- निर्माण स्वचालन [19]
- कॉन्फ़िगरेशन फाइल
- दुभाषिया निर्देश / शेबांग(यूनिक्स)
- टेंपलेटिंग भाषा
संदर्भ
- ↑ "ECMAScript 2019 Language Specification". www.ecma-international.org. Retrieved 2018-04-02.
- ↑ Sheppard, Doug (2000-10-16). "शुरुआती लोगों के लिए पर्ल का परिचय". dev.perl.org. Retrieved 2011-01-08.
- ↑ Programming is Hard, Let's Go Scripting…, Larry Wall, December 6, 2007
- ↑ Hey, Tony; Pápay, Gyuri (2014). The Computing Universe: A Journey through a Revolution. Cambridge University Press. p. 76. ISBN 978-1-31612322-5, "A major characteristic of modern scripting languages is their interactivity, sometimes referred to as a REPL programming environment. […] The characteristics of ease of use and immediate execution with a REPL environment are sometimes taken as the definition of a scripting language."
{{cite book}}
: CS1 maint: postscript (link) - ↑ Brown, Vicki. "स्क्रिप्टिंग भाषाएँ". MacTech | The journal of Apple technology. (in English). Retrieved 2009-07-22.
{{cite web}}
: CS1 maint: url-status (link) - ↑ Loui, Ronald (2008). "पटकथा की प्रशंसा में". IEEE Computer. Archived from the original on 2015-09-23. Retrieved 2013-08-27.
- ↑ IBM Corporation (1967). IBM System/360 Operating System Job Control Language (C28-6529-4) (PDF).
- ↑ Mooers, Calvin. "टीआरएसी, प्रतिक्रियाशील टाइपराइटर के लिए एक प्रक्रिया-वर्णन भाषा". Archived from the original on 2001-04-25. Retrieved March 9, 2012.
- ↑ Van Vleck, Thomas (ed.). "Multics Glossary – A — (active function)". Retrieved March 9, 2012.
- ↑ Varian, Melinda. "VM AND THE VM COMMUNITY: Past, Present, and Future" (PDF). Retrieved March 9, 2012.
- ↑ Van Vleck, Thomas (ed.). "Multics Glossary – R — (RUNCOM)". Retrieved March 9, 2012.
- ↑ "What is glue code (glue code language)? - Definition from WhatIs.com". WhatIs.com (in English). Retrieved 2022-01-31.
- ↑ Larson, Quincy (10 January 2020). "व्याख्या बनाम संकलित प्रोग्रामिंग भाषाएँ". Free Code Camp. Retrieved 23 February 2022.
{{cite web}}
: CS1 maint: url-status (link) - ↑ Balkis, Anton. "लिपियाँ है". Raja Tips. Retrieved 23 February 2022.
{{cite web}}
: CS1 maint: url-status (link) - ↑ Axelsson, Mats. "शेल स्क्रिप्ट - आप क्या बदल सकते हैं". Linux Hint. Retrieved 23 February 2022.
{{cite web}}
: CS1 maint: url-status (link) - ↑ "जॉब कंट्रोल बेसिक्स (बैश रेफरेंस मैनुअल)". www.gnu.org. Retrieved 2022-05-20.
- ↑ Oraperl, CPAN]
- ↑ Perl, Underground Oracle FAQ
- ↑ van Rossum, Guido (January 6–8, 1998). "यह सब एक साथ गोंद". Glue It All Together With Python. python.org.
अग्रिम पठन
- Barron, David William (2001). The World of Scripting Languages. ISBN 0-471-99886-9.
बाहरी संबंध
- Patterns for Scripted Applications at the Wayback Machine (archived October 10, 2004)