Introduction to JavaScript जावास्क्रिप्ट का संपूर्ण परिचय

प्रोग्रामिंग भाषा में कोडिंग की मूल प्रक्रिया

किसी भी प्रकार की Programming Language में Program या Software Develop करते समय कई Basic Steps Follow करने होते हैं। लेकिन हमेंशा सबसे पहले हमें किसी Text Editor में अपनी Language से संबंधित Codes लिखकर कोई Program Create करना होता है। इस प्रकार के Codes को हम जिस File में लिखते हैं, उस File को Source File कहा जाता है, क्योंकि Program से संबंधित मूल Codes इसी Source File में होते हैं और यदि हमें हमारे Program में कोई Modification करना हो, तो हम वह Modification इसी Source File में करते हैं।

Source file and computer language सोर्स फाइल और कंप्यूटर की भाषा

सोर्स फाइल (Source File) केवल एक साधारण टेक्स्ट फाइल (Plain Text File) ही होती है, जिसमें हम हमारे समझने योग्य English Language में Programming Language से संबंधित Codes लिखते हैं। लेकिन Computer एक Electronic Machine मात्र है, जो हिन्दी, अंग्रेजी, Chinese जैसी उन भाषाओं को नहीं समझता जिन्हें हम Human Beings Real Life में समझते हैं, बल्कि वह केवल Binary Language या अन्य शब्दों में कहें तो Machine Language को ही समझता है। जबकि परेशानी ये है कि हम Human Beings Computer की Machine Language को आसानी से नहीं समझ सकते।

इंटरमीडिएटर की आवश्यकता

इस स्थिति में एक ऐसे Inter-Mediator की जरूरत होती है, जो हमारी English जैसी भाषा में लिखे गए Codes को Computer के समझने योग्य Machine Language में Convert कर सके और Computer द्वारा हमारे Program के आधार पर Generate होने वाले Output या Result को हमारे समझने योग्य English जैसी भाषा में Convert कर सके। इस प्रकार के Inter-mediator को Computer की भाषा में Compiler या Interpreter कहते हैं।

कंपाइलर और इंटरप्रेटर: अंतर और विशेषताएं

कंपाइलर और इंटरप्रेटर (Compiler and Interpreter) दोनों ही एक प्रकार के Software मात्र होते हैं, लेकिन इनका मूल काम हमारे Program के Codes को Computer के समझने योग्य मशीनी भाषा में और मशीनी भाषा में Generate होने वाले Results को हमारे समझने योग्य English जैसी भाषा में Convert करना होता है। इस प्रकार से Programming की दुनियां में मूल रूप से दो प्रकार की Programming Languages हैं:

1. कंपाइलर आधारित प्रोग्रामिंग भाषाएं

  • पहले प्रकार की Programming Languages को Compiler Based Programming Languages कहते हैं,
  • जिसके अन्तर्गत “C”, “C++” जैसी Languages आती हैं। इस प्रकार की Languages की मूल विशेषता ये है कि इस प्रकार की Programming Languages में हम जो Program Create करते हैं, उन्हें Compile करने पर वे Program पूरी तरह से Machine Codes में Convert हो जाते हैं, जिन्हें हमारा Computer Directly Run करता है।
  • Role of compiler and executable file कंपाइलर की भूमिका और एक्सिक्यूटेबल फाइलें
  • Compiler Based Programming Languages की मूल विशेषता ये होती है कि जब हम हमारे किसी Program को उसके Compiler द्वारा Compile कर लेते हैं, तो एक नई Executable File बनती है, जिसमें केवल Computer के समझने योग्य Machine Codes होते हैं और इस File को Run करने के लिए अब हमें हमारी Source File की जरूरत नहीं रहती।
  • Compiler based programs and portability कंपाइलर आधारित प्रोग्राम्स और पोर्टेबिलिटी
  • ये Executable File पूरी तरह से Current Computer Architecture व Operating System पर आधारित होती है। यानी यदि हम किसी Program को उस Computer पर Compile करें जिस पर Windows Operating System Run हो रहा हो, और Generate होने वाली Executable File को हम किसी दूसरे ऐसे Computer पर Run करने की कोशिश करें, जिस पर Linux Operating System हो, तो हमारा Program Linux Operating System पर Run नहीं होगा, क्योंकि Compiler Based Programming Language के Compiler द्वारा Generate होने वाली File हमेंशा अपने Operating System व Computer Architecture पर Depend होती है इसलिए पूरी तरह से Portable नहीं होती।
  • Source file requirements and modifications सोर्स फाइल की जरूरत और संशोधन
  • लेकिन चूंकि Compiler Based Programming Language में Program को Compile करने पर एक नई Executable File बन जाती है, जो कि पूरी तरह से Current Operating System व Computer Architecture पर आधारित होती है, इसलिए इस Executable File को अब उसके Source File की जरूरत नहीं रहती।
  • यानी एक बार किसी Program को Compile करके उसकी Executable File प्राप्त कर लेने के बाद अब यदि हम उसकी Source File को Delete भी कर दें, तब भी उसकी Executable File के आधार पर Computer हमारे Program को Run करेगा।
  • लेकिन यदि हमें हमारे Program में कोई Modification करना हो, तो हमें फिर से उस Program की Source File की जरूरत होगी, जिसे हमने Compile किया था और Modification करने के बाद हमें फिर से अपनी Source File को Compile करके एक नई Executable File Create करनी होगी, तभी हमारा Computer हमारे Modified Program को समझ सकेगा।
  • यानी Compiler Based Programming Languages को अपने Source Program की जरूरत केवल एक बार उस समय होती है, जब Source Program को Compile करके Executable File Create किया जाता है।

2. Interpreter-based programming languages इंटरप्रेटर आधारित प्रोग्रामिंग भाषाएं

  • जबकि दूसरी प्रकार की Programming Languages को Interpreter Based Programming Language कहते हैं
  • और इस प्रकार की Programming Languages की मुख्य विशेषता ये होती है कि Interpreter Based Programming Languages कभी भी Machine Depended Executable Files Create नहीं करते, इसलिए हमेंशा अपनी Source File पर Depend होते हैं।
  • Function of Interpreter इंटरप्रेटर की कार्यप्रणाली
  • यानी हालांकि Compiler व Interpreter दोनों ही हमारे Program को Machine Codes में Convert करते हैं, ताकि हमारा Computer उसे समझ सके, लेकिन Compiler Based Programming Language अपने Computer Architecture व Operating System पर Dependent एक नई Executable File Create करता है, इसलिए उसे अपनी Source File की जरूरत नहीं रहती। जबकि Interpreter Based Programming Language किसी भी तरह की नई Executable File Create नहीं करता। परिणामस्वरूप Interpreter Based Programming Language को हमेंशा अपनी Source File की जरूरत रहती है और यदि हम Source File को Delete कर दें, तो हमारा Program भी हमेंशा के लिए खत्म हो जाता है।
  • चूंकि Interpreter Based Programming Languages की कोई Executable Create नहीं होती, इसलिए इनमें बने हुए Programs को Run होने के लिए हमेंशा किसी न किसी Host Environment की जरूरत होती है, जिनमें Interpreter Based Languages के Programs Run होते हैं।
  • इसी वजह से किसी भी Interpreter Based Programming Language में यदि किसी प्रकार का परिवर्तन करना हो, तो उसकी Source File को ही Modify करना होता है और जब हम उस Modified Source File को फिर से Interpret करते हैं, हमें उसका Modification तुरन्त Reflect हो जाता है, जबकि Compiler Based Languages में हमें Source Filed में Modification करने के बाद उसे फिर से Compile करना जरूरी होता है, अन्यथा Modification का कोई Effect हमें Executable Program में दिखाई नहीं देता।
  • Interpreter व Compiler दोनों ही प्रकार की Programming Languages की एक विशेषता व एक कमी है। चूंकि Compiler Based Programs की हमेंशा एक Executable File बनती है, जो कि पूरी तरह से Current Computer Architecture व Operating System पर Depend होती है, इसलिए Compiler Based Programs की Speed हमेंशा Interpreter Based Programs की तुलना में Fast होती है, क्योंकि Interpreter Based Programs की तरह इन्हें बार-बार Machine Codes में Convert नहीं होना पडता।
  • लेकिन Interpreter Based Program किसी भी Computer Architecture व Operating System पर बिना Recompile किए हुए ज्यों के त्यों बार-बार Run हो सकते हैं। यानी ये Portable होते हैं क्योंकि ये हमेंशा अपने Host Environment में Current Computer Architecture व Operating System के आधार पर बार-बार हर बार Interpret होते हैं यानी Machine Codes में Covert होते हैं और Program Run होने के बाद इनके Machine Codes समाप्त हो जाते हैं।
  • “C”, “C++” जैसी Programming Languages, Compiler Based Programming Languages हैं, जबकि HTML, CSS, XML, JavaScript, ASP आदि Interpreter Based Markup व Client Side Scripting Languages हैं, जो हमेंशा किसी Host Environment में Run होते हैं। यानी इनका अलग से कोई Inter-Mediator Software नहीं होता बल्कि इनका Interpreter इनके Host Environment के अन्दर ही होता है।

Importance of the Host Environment होस्ट एनवायरनमेंट का महत्व

Host Environment वह Software होता है, जिनमें विभिन्न Interpreter Based Programming Languages के Programs Run होते हैं। उदाहरण के लिए Web Browser वह Host Environment होता है, जहां HTML, XML, CSS, JavaScript आदि के Programs Run होते हैं और हमें इनका Output एक Rendered Web Page के रूप में दिखाई देता है।

JavaScript’s Host Environment जावास्क्रिप्ट का होस्ट एनवायरनमेंट

जैसाकि हमने पहले भी कहा कि JavaScript एक Client Side में Run होने वाली Interpreter Based Scripting Language है और Interpreter Based होने की वजह से JavaScript का अलग से कोई Interpreter Software नहीं होता, बल्कि JavaScript Programs जिस Software में Run होते हैं, उन Software में ही JavaScript के Engine को Build किया गया होता है।

सामान्यतः Web Browsers ही JavaScript का Host Environment होते हैं, लेकिन इसका मतलब ये नहीं है कि JavaScript के Programs केवल Web Browser में ही Run हो सकते हैं। वास्तव में सच्चाई ये है कि जिस किसी भी Software में JavaScript Engine Embedded होता है, हर उस Software में JavaScript के Programs Run हो सकते हैं।

इसीलिए JavaScript केवल Web Browser में ही Use नहीं किया जाता बल्कि JavaScript Engine को कई अन्य Platforms में भी Embed किया गया है, जहां JavaScript के Programs Run हो सकते हैं।

उदाहरण के लिए Adobe Flash एक प्रकार का Animation Software है, जहां Programming Language के रूप में ActionScript को Use किया जाता है। ये भी एक प्रकार की JavaScript Language ही है। इसी तरह से Adobe PDF Reader में भी JavaScript Supported है।

वर्तमान समय में विभिन्न प्रकार के Web Development IDEs उपलब्ध हैं, जैसेकि Adobe DreamWeaver, Eclipse, NetBeans आदि, इनमें भी JavaScript Engine Embedded है, इसलिए ये भी JavaScript के Host Environments हैं।

यानी हम जिस Software को Use कर रहे हैं, यदि उसमें ECMAScript Standard आधारित कोई भी Scripting Language Supported है, तो वह एक प्रकार से JavaScript का भी Host Environment है।

चूंकि JavaScript का सबसे ज्यादा प्रयोग Web Pages व Web Applications को Interactive (User Interaction Supported) बनाने के लिए किया जाता है, इसलिए इस ब्लॉग में हमारे लिए Web Browsers ही JavaScript का Host Environment है।

निष्कर्ष

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

Share to:

नमस्कार! मैं Kailash Parihar, Coading Notes का संस्थापक और मुख्य लेखक हूँ। मैं प्रोग्रामिंग और कोडिंग में रुचि रखता हूँ और अपने लेखों के माध्यम से इस ज्ञान को साझा करता हूँ। मेरा उद्देश्य प्रोग्रामिंग में रुचि रखने वालों को सशक्त बनाना और उनके कौशल को सुधारने में मदद करना है।

Leave a Comment