स्क्रिप्टिंग भाषा: Difference between revisions

From Vigyanwiki
No edit summary
 
(One intermediate revision by one other user not shown)
Line 195: Line 195:
{{Authority control}}
{{Authority control}}


{{DEFAULTSORT:Scripting Language}}[[Category: स्क्रिप्टिंग भाषाएं| स्क्रिप्टिंग भाषाएं]] [[Category: प्रोग्रामिंग प्रतिमान]] [[Category: जावा कोड उदाहरण के साथ लेख]]
{{DEFAULTSORT:Scripting Language}}


 
[[Category:All articles with unsourced statements|Scripting Language]]
 
[[Category:Articles with hatnote templates targeting a nonexistent page|Scripting Language]]
[[Category: Machine Translated Page]]
[[Category:Articles with unsourced statements from January 2022|Scripting Language]]
[[Category:Created On 16/03/2023]]
[[Category:Articles with unsourced statements from October 2021|Scripting Language]]
[[Category:Vigyan Ready]]
[[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

जीडीस्क्रिप्ट3.4

एक स्क्रिप्टिंग भाषा या स्क्रिप्ट भाषा एक ऐसी प्रोग्रामिंग भाषा है जिसका उपयोग किसी वर्तमान प्रणाली की सुविधाओं में युक्तियोजित करने, अनुकूलित करने और स्वचालित करने के लिए किया जाता है।[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]

ग्लू भाषा उदाहरण:

ऑपरेटिंग सिस्टम या एप्लिकेशन अवयवों के संपर्क में आने वाली मैक्रो(कंप्यूटर विज्ञान) भाषाएं ग्लू भाषाओं के रूप में कार्य कर सकती हैं। इनमें एप्लिकेशन के लिए विजुअल बेसिक, वर्डबेसिक, लोटसस्क्रिप्ट, कोरलस्क्रिप्ट, हमिंगबर्ड बेसिक, क्विकस्क्रिप्ट, रेक्स, 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 संगत स्क्रिप्टिंग विकल्प है।

यह भी देखें

संदर्भ

  1. "ECMAScript 2019 Language Specification". www.ecma-international.org. Retrieved 2018-04-02.
  2. Sheppard, Doug (2000-10-16). "शुरुआती लोगों के लिए पर्ल का परिचय". dev.perl.org. Retrieved 2011-01-08.
  3. Programming is Hard, Let's Go Scripting…, Larry Wall, December 6, 2007
  4. 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)
  5. Brown, Vicki. "स्क्रिप्टिंग भाषाएँ". MacTech | The journal of Apple technology. (in English). Retrieved 2009-07-22.{{cite web}}: CS1 maint: url-status (link)
  6. Loui, Ronald (2008). "पटकथा की प्रशंसा में". IEEE Computer. Archived from the original on 2015-09-23. Retrieved 2013-08-27.
  7. IBM Corporation (1967). IBM System/360 Operating System Job Control Language (C28-6529-4) (PDF).
  8. Mooers, Calvin. "टीआरएसी, प्रतिक्रियाशील टाइपराइटर के लिए एक प्रक्रिया-वर्णन भाषा". Archived from the original on 2001-04-25. Retrieved March 9, 2012.
  9. Van Vleck, Thomas (ed.). "Multics Glossary – A — (active function)". Retrieved March 9, 2012.
  10. Varian, Melinda. "VM AND THE VM COMMUNITY: Past, Present, and Future" (PDF). Retrieved March 9, 2012.
  11. Van Vleck, Thomas (ed.). "Multics Glossary – R — (RUNCOM)". Retrieved March 9, 2012.
  12. "What is glue code (glue code language)? - Definition from WhatIs.com". WhatIs.com (in English). Retrieved 2022-01-31.
  13. Larson, Quincy (10 January 2020). "व्याख्या बनाम संकलित प्रोग्रामिंग भाषाएँ". Free Code Camp. Retrieved 23 February 2022.{{cite web}}: CS1 maint: url-status (link)
  14. Balkis, Anton. "लिपियाँ है". Raja Tips. Retrieved 23 February 2022.{{cite web}}: CS1 maint: url-status (link)
  15. Axelsson, Mats. "शेल स्क्रिप्ट - आप क्या बदल सकते हैं". Linux Hint. Retrieved 23 February 2022.{{cite web}}: CS1 maint: url-status (link)
  16. "जॉब कंट्रोल बेसिक्स (बैश रेफरेंस मैनुअल)". www.gnu.org. Retrieved 2022-05-20.
  17. Oraperl, CPAN]
  18. Perl, Underground Oracle FAQ
  19. van Rossum, Guido (January 6–8, 1998). "यह सब एक साथ गोंद". Glue It All Together With Python. python.org.


अग्रिम पठन


बाहरी संबंध