Follow Us
माध्यम चुनें / Select Medium:
Eng (English) Hindi (हिन्दी)
BSEB • कक्षा 7 • Computer Science • अध्याय 1
अनुमानित समय: 45 Mins
प्रगति: अध्ययनरत

प्रोग्रामिंग भाषा (Programming Language)

बिहार बोर्ड कक्षा 7 कंप्यूटर साइंस का यह अध्ययन मॉड्यूल 'प्रोग्रामिंग भाषा' पर एक अत्यंत विस्तृत और प्रमाणिक शैक्षणिक आधार प्रस्तुत करता है। अध्याय का प्रारंभ प्रोग्राम, प्रोग्रामर और कोडिंग की परिभाषा से होता है, जिसमें मानव भाषा और कंप्यूटर के बाइनरी हार्डवेयर के बीच के संचार अंतर को स्पष्ट किया गया है। विद्यार्थी कंप्यूटर भाषाओं की पांच ऐतिहासिक पीढ़ियों का गहन अध्ययन करेंगे: प्रथम पीढ़ी मशीन भाषा (1GL), द्वितीय पीढ़ी असेंबली भाषा (2GL) और उसके निमोनिक कोड, तृतीय पीढ़ी उच्च-स्तरीय भाषाएँ (3GL) जैसे बेसिक, सी, जावा और पायथन, चतुर्थ पीढ़ी गैर-प्रक्रियात्मक भाषाएँ (4GL) जैसे एसक्यूएल (SQL), तथा पंचम पीढ़ी एआई-आधारित भाषाएँ (5GL) जैसे प्रोलॉग। इसके अतिरिक्त, भाषा अनुवादकों (असेंबलर, कंपाइलर और इंटरप्रेटर) की कार्यप्रणाली, उनकी तुलनात्मक गति, प्रोग्रामिंग प्रतिमान (प्रक्रियात्मक बनाम ऑब्जेक्ट-ओरिएंटेड), प्रोग्रामिंग त्रुटियों (सिंटैक्स, लॉजिकल और रनटाइम बग) का वर्गीकरण तथा छह चरणों वाले प्रोग्राम विकास जीवन चक्र (PDLC) का विस्तृत विश्लेषण किया गया है। अंत में, बिहार के प्रमुख ई-गवर्नेंस पोर्टलों जैसे मेधासॉफ्ट, ओएफएसएस और भू-अभिलेख डिजिटलीकरण में प्रोग्रामिंग के व्यावहारिक अनुप्रयोगों का परीक्षण किया गया है।

क्या आपने कभी सोचा है?

क्या आपने कभी सोचा है कि आपका स्मार्टफोन, वीडियो गेम या बिहार विद्यालय परीक्षा समिति (BSEB) का ऑनलाइन परीक्षा पोर्टल यह कैसे समझता है कि उसे क्या करना है? भौतिक स्तर पर कंप्यूटर केवल अरबों सूक्ष्म सिलिकॉन स्विचों का एक जाल है जो केवल चालू (ON) या बंद (OFF) हो सकते हैं, जिन्हें हम बाइनरी 0 और 1 कहते हैं। कंप्यूटर मानव की हिंदी, अंग्रेजी या किसी भी बोलचाल की भाषा को सीधे नहीं समझ सकता। फिर हम कंप्यूटर को परीक्षा परिणाम निकालने, मौसम का पूर्वानुमान लगाने या उपग्रह को नियंत्रित करने का निर्देश कैसे देते हैं? इसका उत्तर है प्रोग्रामिंग भाषा (Programming Language)—मानव की तार्किक सोच और कंप्यूटर के इलेक्ट्रॉनिक हार्डवेयर के बीच का जादुई सेतु। कंप्यूटर भाषाओं की पीढ़ियों को समझकर आप कंप्यूटर को अपनी आज्ञा अनुसार चलाने की रचनात्मक शक्ति हासिल करते हैं।

यह अध्याय क्यों महत्वपूर्ण है

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

अध्ययन से पूर्व (आवश्यक ज्ञान)

  • कंप्यूटर हार्डवेयर के बुनियादी घटकों (सीपीयू, रैम, इनपुट और आउटपुट डिवाइस) की सामान्य समझ।
  • बाइनरी संख्या प्रणाली (0 और 1) की प्राथमिक जानकारी जो इलेक्ट्रॉनिक ऑन और ऑफ अवस्था को दर्शाती है।
  • सॉफ्टवेयर की अवधारणा कि यह हार्डवेयर को नियंत्रित करने वाले प्रोग्रामों का समूह होता है।
  • चरणबद्ध तार्किक सोच जैसे किसी कार्य को क्रमवार निर्देशों के अनुसार संपन्न करना।

इस अध्याय के लक्ष्य

  • प्रोग्राम, प्रोग्रामर और प्रोग्रामिंग भाषा को परिभाषित करना और सिंटैक्स एवं सेमेंटिक्स के महत्व को स्पष्ट करना।
  • कंप्यूटर भाषाओं की पांचों पीढ़ियों (1GL से 5GL) की तकनीकी विशेषताओं, गति और पोर्टेबिलिटी में अंतर स्पष्ट करना।
  • निम्न-स्तरीय भाषाओं (मशीन व असेंबली) और उच्च-स्तरीय भाषाओं की शक्तियों और सीमाओं की तुलना करना।
  • भाषा अनुवादकों की आवश्यकता को समझाना तथा असेंबलर, कंपाइलर और इंटरप्रेटर के मध्य विस्तृत तुलनात्मक अंतर प्रस्तुत करना।
  • प्रोग्रामिंग त्रुटियों को सिंटैक्स त्रुटि, लॉजिकल त्रुटि और रनटाइम त्रुटि में वर्गीकृत कर डिबगिंग के तरीके समझाना।
  • प्रोग्राम विकास जीवन चक्र (PDLC) के छह चरणों को क्रमबद्ध रूप से समझाना और कोडिंग से पूर्व एल्गोरिदम की अनिवार्यता सिद्ध करना।
  • प्रक्रियात्मक (POP) और ऑब्जेक्ट-ओरिएंटेड (OOP) प्रोग्रामिंग प्रतिमानों के मूल सिद्धांतों को उदाहरण सहित स्पष्ट करना।
  • बिहार की डिजिटल सार्वजनिक सेवाओं जैसे मेधासॉफ्ट और ओएफएसएस पोर्टल में सॉफ्टवेयर प्रोग्रामिंग की भूमिका का मूल्यांकन करना।

अध्याय रूपरेखा एवं प्रगति

1 मॉड्यूल 1: प्रोग्रामिंग भाषा की मूल...
2 मॉड्यूल 2: निम्न-स्तरीय भाषाओं का व...
3 मॉड्यूल 3: तृतीय पीढ़ी की भाषाएं (3...
4 मॉड्यूल 4: चतुर्थ एवं पंचम पीढ़ी की...
5 मॉड्यूल 5: भाषा अनुवादक: असेंबलर, क...
6 मॉड्यूल 6: प्रोग्रामिंग प्रतिमान, स...
7 मॉड्यूल 7: प्रोग्राम विकास जीवन चक्...

सम्पूर्ण सैद्धांतिक एवं वैचारिक अध्ययन

मॉड्यूल 1: प्रोग्रामिंग भाषा की मूलभूत अवधारणाएं एवं कंप्यूटर संचार की आवश्यकता

1.1 कंप्यूटर प्रोग्राम का मूल स्वरूप

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

  • कंप्यूटर प्रोग्राम (Program): किसी विशिष्ट कार्य को संपन्न करने के लिए कंप्यूटर को दिए जाने वाले क्रमबद्ध और स्पष्ट निर्देशों के समूह को प्रोग्राम कहा जाता है।
  • प्रोग्रामर (Programmer): वह व्यक्ति जो किसी समस्या का विश्लेषण करके उसके समाधान हेतु तार्किक विधि (एल्गोरिदम) तैयार करता है और उसे किसी कंप्यूटर भाषा में कोड के रूप में लिखता है।
  • प्रोग्रामिंग या कोडिंग (Programming / Coding): कंप्यूटर प्रोग्राम की रूपरेखा बनाने, निर्देश लिखने, उनका परीक्षण करने और उनमें उपस्थित त्रुटियों को दूर करने की संपूर्ण प्रक्रिया को प्रोग्रामिंग कहा जाता है।

1.2 संचार का अंतर: प्राकृतिक भाषा बनाम मशीनी हार्डवेयर

मानव अपने विचारों के आदान-प्रदान के लिए हिंदी, अंग्रेजी, उर्दू या मैथिली जैसी प्राकृतिक भाषाओं का उपयोग करता है। प्राकृतिक भाषाएं अत्यंत समृद्ध और लचीली होती हैं, परंतु उनमें अनेकार्थकता (Ambiguity) और संदर्भ पर आधारित अर्थ पाए जाते हैं। उदाहरण के लिए, "सोना" शब्द का अर्थ धातु (Gold) भी हो सकता है और शयन करना (Sleep) भी। मनुष्य अपने सामान्य ज्ञान से संदर्भ समझ लेता है।

इसके विपरीत, इलेक्ट्रॉनिक हार्डवेयर में किसी भी प्रकार की अस्पष्टता के लिए कोई स्थान नहीं होता। कंप्यूटर का सीपीयू विशुद्ध रूप से डिजिटल इलेक्ट्रॉनिक्स पर कार्य करता है:

  1. सीपीयू के भीतर स्थित लाखों-करोड़ों ट्रांजिस्टर केवल दो अवस्थाओं में रह सकते हैं।
  2. कम वोल्टेज (0 वोल्ट) को बाइनरी अंक 0 (OFF अवस्था) माना जाता है।
  3. उच्च वोल्टेज (+5 वोल्ट या +3.3 वोल्ट) को बाइनरी अंक 1 (ON अवस्था) माना जाता है।

चूंकि हार्डवेयर केवल बाइनरी वोल्टेज (0 और 1) की भाषा समझता है, अतः मानव द्वारा कंप्यूटर को निर्देश देने के लिए एक ऐसी विशेष भाषा की आवश्यकता हुई जो पूर्णतः सटीक, नियमबद्ध और अस्पष्टता-रहित हो। इसी भाषा को प्रोग्रामिंग भाषा कहा जाता है।


1.3 प्रोग्रामिंग भाषा के मूल घटक: सिंटैक्स एवं सेमेंटिक्स

प्रत्येक औपचारिक प्रोग्रामिंग भाषा दो प्रमुख आधार स्तंभों पर टिकी होती है:

  1. सिंटैक्स (Syntax): भाषा के व्याकरण संबंधी कठोर नियम, वर्तनी, विराम चिह्न और संरचना। जिस प्रकार हिंदी में वाक्य रचना के व्याकरणिक नियम होते हैं, उसी प्रकार प्रोग्रामिंग भाषा में भी प्रत्येक कथन लिखने का एक निश्चित प्रारूप होता है। एक अल्पविराम (,) या कोष्ठक की भी गलती होने पर सिंटैक्स त्रुटि उत्पन्न हो जाती है।
  2. सेमेंटिक्स (Semantics): किसी कथन का वास्तविक तार्किक अर्थ और उसके निष्पादन पर कंप्यूटर द्वारा किया जाने वाला कार्य।

मशीनी निर्देश की संरचना (Anatomy of an Instruction)

हार्डवेयर स्तर पर प्रत्येक कंप्यूटर निर्देश के दो प्रमुख भाग होते हैं:

$$\text{कंप्यूटर निर्देश} = \text{ऑपकोड (Opcode)} + \text{ऑपरेंड (Operand)}$$

  • ऑपकोड (Operation Code): वह संकेत या कोड जो प्रोसेसर को यह बताता है कि कौन-सी क्रिया करनी है (जैसे: जोड़ना ADD, घटाना SUB, डेटा लाना LOAD)।
  • ऑपरेंड (Operand): वह डेटा मान या मेमोरी का पता जिस पर ऑपकोड द्वारा क्रिया की जानी है।

1.4 कोड के तीन रूप: सोर्स कोड, ऑब्जेक्ट कोड और एक्ज़ीक्यूटेबल कोड

मानव द्वारा लिखे गए निर्देशों से लेकर मशीन द्वारा उनके क्रियान्वयन तक कोड तीन रूपों से गुजरता है:

कोड का प्रकार परिभाषा मानवीय पठनीयता मशीनी पठनीयता
सोर्स कोड (Source Code) प्रोग्रामर द्वारा किसी उच्च-स्तरीय भाषा (जैसे पायथन, सी, जावा) में लिखा गया मूल टेक्स्ट प्रोग्राम। मानव द्वारा आसानी से पढ़ा और समझा जा सकता है। सीपीयू इसे सीधे निष्पादित नहीं कर सकता।
ऑब्जेक्ट कोड (Object Code) भाषा अनुवादक (कंपाइलर या असेंबलर) द्वारा सोर्स कोड का अनुवाद करने के बाद उत्पन्न निम्न-स्तरीय बाइनरी कोड। मानव के लिए पढ़ना अत्यंत कठिन या असंभव। मशीन के समझने योग्य बाइनरी निर्देशों के रूप में होता है।
एक्ज़ीक्यूटेबल कोड (Executable Code) पूरी तरह से तैयार बाइनरी प्रोग्राम फाइल (जैसे विंडोज में .exe फाइल) जो आवश्यक लाइब्रेरी से जुड़ी होती है। मानव के लिए अपठनीय (विशुद्ध बाइनरी)। कंप्यूटर की रैम में लोड होकर सीपीयू द्वारा सीधे निष्पादित होती है।

1.5 एक अच्छी प्रोग्रामिंग भाषा के लक्षण

वैज्ञानिक दृष्टिकोण से किसी भी उत्कृष्ट प्रोग्रामिंग भाषा में निम्नलिखित विशेषताएं होनी चाहिए:

  • सरलता एवं स्पष्टता: भाषा के नियम सहज और समझने में आसान होने चाहिए ताकि कोड लिखना और समझना सुगम हो।
  • पोर्टेबिलिटी (मशीन स्वतंत्रता): एक कंप्यूटर पर लिखा गया प्रोग्राम बिना किसी बड़े बदलाव के विभिन्न प्रकार के हार्डवेयर और ऑपरेटिंग सिस्टम पर चल सके।
  • दक्षता: अनुवादित कोड कम से कम सीपीयू समय और मेमोरी का उपयोग करके तेजी से परिणाम दे।
  • त्रुटि पहचान क्षमता: भाषा का अनुवादक त्रुटियों को तुरंत चिन्हित करे और प्रोग्रामर को सही मार्गदर्शन दे।

मॉड्यूल 2: निम्न-स्तरीय भाषाओं का विकास: प्रथम एवं द्वितीय पीढ़ी (मशीन एवं असेंबली भाषा)

2.1 कंप्यूटर भाषाओं का पीढ़ीगत वर्गीकरण

कंप्यूटर के विकास के साथ-साथ प्रोग्रामिंग भाषाओं का भी निरंतर क्रमिक विकास हुआ है। कंप्यूटर वैज्ञानिक प्रोग्रामिंग भाषाओं को उनके हार्डवेयर से निकटता और अमूर्तता (Abstraction) के स्तर के आधार पर पांच अलग-अलग पीढ़ियों (Generations) में विभाजित करते हैं।

प्रारंभिक दो पीढ़ियों को निम्न-स्तरीय भाषाएँ (Low-Level Languages - LLL) कहा जाता है क्योंकि इनके निर्देश सीधे कंप्यूटर के आंतरिक इलेक्ट्रॉनिक परिपथों, रजिस्टरों और बाइनरी स्विचों से जुड़े होते हैं।


2.2 प्रथम पीढ़ी की भाषा (1GL): मशीन भाषा (Machine Language)

मशीन भाषा कंप्यूटर की अपनी मातृभाषा है। यह एकमात्र ऐसी भाषा है जिसे कंप्यूटर का सीपीयू बिना किसी अनुवादक की सहायता के सीधे और तुरंत समझ सकता है।

1. मशीन भाषा की तकनीकी विशेषताएं

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

$$10110000 \quad 00000101 \quad 00000011$$

2. मशीन भाषा के लाभ

  • अत्यधिक तीव्र गति: चूंकि कोड पहले से ही बाइनरी रूप में होता है, सीपीयू इसे बिना किसी अनुवाद के तुरंत निष्पादित करता है।
  • मेमोरी का कुशल उपयोग: प्रोग्रामर सीधे मेमोरी बाइट्स को नियंत्रित कर सकता है, जिससे किसी अतिरिक्त मेमोरी की बर्बादी नहीं होती।

3. मशीन भाषा की गंभीर सीमाएं

  • पूर्णतः मशीन-निर्भर (Machine Dependent): एक विशिष्ट प्रकार के प्रोसेसर (जैसे इंटेल) के लिए लिखा गया मशीन कोड किसी दूसरे प्रोसेसर (जैसे मोटोरोला या एआरएम) पर बिल्कुल नहीं चल सकता था।
  • अत्यंत जटिल और त्रुटिपूर्ण: हजारों लाइनों के 0 और 1 को याद रखना और लिखना मानव मस्तिष्क के लिए अत्यंत कठिन था। एक भी अंक गलत होने पर पूरा प्रोग्राम विफल हो जाता था।
  • डिबगिंग की असंभवता: लाखों बाइनरी अंकों के बीच किसी एक गलती को खोजना भूसे के ढेर में सुई खोजने जैसा दुष्कर कार्य था।
  • हार्डवेयर का गहरा ज्ञान अनिवार्य: प्रोग्रामर को कंप्यूटर के आंतरिक आर्किटेक्चर, बस और रजिस्टरों की पूर्ण जानकारी रखनी पड़ती थी।

2.3 द्वितीय पीढ़ी की भाषा (2GL): असेंबली भाषा (Assembly Language)

मशीन भाषा की भारी कठिनाइयों को दूर करने के लिए 1950 के दशक के आरंभ में असेंबली भाषा का आविष्कार किया गया। इसे द्वितीय पीढ़ी की भाषा (2GL) कहा जाता है।

1. निमोनिक कोड (Mnemonic Codes) की शक्ति

असेंबली भाषा में बाइनरी कोड के स्थान पर संक्षिप्त अंग्रेजी अक्षरों वाले प्रतीकात्मक शब्दों का प्रयोग किया गया जिन्हें निमोनिक कोड (Mnemonic Codes) कहते हैं (यह ग्रीक शब्द Mnemonikos से बना है जिसका अर्थ स्मृति में सहायक होता है)।

कार्य 1GL बाइनरी कोड (काल्पनिक) 2GL असेंबली निमोनिक कार्य का विवरण
जोड़ना 0001 ADD दो रजिस्टरों या मानों को जोड़ना
घटाना 0010 SUB एक मान में से दूसरा मान घटाना
गुणा करना 0011 MUL दो मानों का गुणा करना
स्थानांतरण 0100 MOV डेटा को एक स्थान से दूसरे स्थान पर ले जाना
मेमोरी से लाना 0101 LOD / LD मेमोरी से डेटा को एक्युमुलेटर में लोड करना
सुरक्षित करना 0110 STO / ST डेटा को रैम में सुरक्षित करना
कूदना 0111 JMP किसी दूसरे निर्देश पर छलांग लगाना
रोकना 1111 HLT प्रोग्राम का निष्पादन समाप्त करना

इसके अलावा, मेमोरी एड्रेस के लिए भी बाइनरी नंबरों की जगह प्रतीकात्मक नाम (जैसे TOTAL, MARKS, A) दिए जाने लगे।

2. असेंबलर (Assembler) की भूमिका

यद्यपि असेंबली भाषा इंसानों के लिए आसान थी, लेकिन कंप्यूटर तो केवल 0 और 1 ही समझता है। अतः असेंबली भाषा में लिखे गए प्रोग्राम को मशीन भाषा में बदलने के लिए एक विशेष अनुवादक सॉफ्टवेयर की आवश्यकता पड़ी जिसे असेंबलर (Assembler) कहा जाता है:

$$\text{असेंबली सोर्स कोड} \xrightarrow[\text{अनुवादक}]{\text{असेंबलर}} \text{मशीन कोड (0s और 1s)}$$

3. असेंबली भाषा के गुण और दोष

  • गुण: मशीन भाषा की तुलना में लिखना, समझना और गलतियां सुधारना बहुत सरल; हार्डवेयर पर सीधा नियंत्रण बना रहता है।
  • दोष: यह अभी भी मशीन-निर्भर थी। एक कंप्यूटर मॉडल के लिए लिखी गई असेंबली भाषा दूसरे मॉडल पर काम नहीं करती थी।

मॉड्यूल 3: तृतीय पीढ़ी की भाषाएं (3GL): उच्च-स्तरीय भाषाएं एवं मशीन स्वतंत्रता

3.1 उच्च-स्तरीय भाषाओं की आवश्यकता एवं उद्भव

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

इस समस्या के समाधान हेतु तृतीय पीढ़ी की भाषाएँ (3GL) विकसित की गईं, जिन्हें सामान्यतः उच्च-स्तरीय भाषाएँ (High-Level Languages - HLL) कहा जाता है।

उच्च-स्तरीय भाषा की मुख्य विशेषताएं:

  1. मानव-अनुकूल शब्दावली: इसमें अंग्रेजी के जाने-पहचाने शब्द (जैसे if, else, while, print, input) और सामान्य गणितीय चिह्न ($+, -, *, /, =, <, >$) प्रयुक्त होते हैं।
  2. मशीन स्वतंत्रता (Portability): एक उच्च-स्तरीय भाषा में लिखा गया प्रोग्राम किसी विशेष कंप्यूटर हार्डवेयर से बंधा नहीं होता। उपयुक्त कंपाइलर की सहायता से वही प्रोग्राम इंटेल पीसी, एप्पल मैक या लिनक्स सर्वर पर समान रूप से चलाया जा सकता है।
  3. हार्डवेयर की चिंता से मुक्ति: प्रोग्रामर को सीपीयू के रजिस्टरों या आंतरिक सर्किट्री की चिंता करने की आवश्यकता नहीं होती; यह काम भाषा का अनुवादक स्वतः संभाल लेता है।

3.2 प्रमुख तृतीय पीढ़ी की भाषाएं एवं उनका इतिहास

1. फोरट्रान (FORTRAN - Formula Translation - 1957)

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

2. कोबोल (COBOL - Common Business-Oriented Language - 1959)

ग्रेस हॉपर के नेतृत्व में विकसित यह भाषा व्यावसायिक लेन-देन, बैंकिंग प्रणाली, बीमा कंपनियों और वेतन (Payroll) प्रबंधन के लिए बनाई गई थी। इसकी वाक्य संरचना अंग्रेजी गद्य की भांति सरल थी।

3. बेसिक (BASIC - Beginner's All-purpose Symbolic Instruction Code - 1964)

डार्टमाउथ कॉलेज के जॉन केमेनी और थॉमस कुर्ट्ज़ द्वारा निर्मित यह भाषा गैर-तकनीकी विद्यार्थियों को प्रोग्रामिंग सिखाने के उद्देश्य से बनाई गई थी। 1980 के दशक में पर्सनल कंप्यूटरों पर (जैसे GW-BASIC और QBASIC) यह विद्यालयी शिक्षा का मुख्य आधार बनी।

4. सी (C Language - 1972)

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

5. सी++ एवं जावा (C++ and Java - 1980/1990 का दशक)

  • C++ (1983): ब्योर्न स्ट्राउस्ट्रुप द्वारा विकसित, जिसने सी भाषा में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) के सिद्धांत जोड़े।
  • Java (1995): सन माइक्रोसिस्टम्स के जेम्स गोसलिंग द्वारा विकसित। जावा का प्रसिद्ध सिद्धांत था "एक बार लिखो, कहीं भी चलाओ" (Write Once, Run Anywhere)। आज दुनिया के करोड़ों एंड्रॉयड स्मार्टफोन और बैंकिंग सर्वर जावा पर निर्भर हैं।

6. पायथन (Python - 1991)

गाइडो वैन रोसुम द्वारा निर्मित पायथन आज दुनिया की सर्वाधिक लोकप्रिय आधुनिक भाषा बन चुकी है। इसकी सिंटैक्स अत्यंत स्पष्ट और पठनीय है, जिससे यह विद्यालयी शिक्षा, डेटा साइंस और आर्टिफिशियल इंटेलिजेंस (AI) की पहली पसंद है।


3.3 निम्न-स्तरीय बनाम उच्च-स्तरीय भाषाओं की तुलना

तुलना का आधार निम्न-स्तरीय भाषाएँ (1GL व 2GL) उच्च-स्तरीय भाषाएँ (3GL)
प्रकृति मशीन-उन्मुख; आंतरिक हार्डवेयर परिपथों के अनुसार। समस्या-उन्मुख; मानवीय सोच, अंग्रेजी शब्दों व गणित पर आधारित।
सीखने में सुगमता अत्यंत कठिन; बाइनरी या निमोनिक्स याद रखना पड़ता है। सरल; सामान्य अंग्रेजी शब्दों और तार्किक संरचनाओं के कारण।
पोर्टेबिलिटी मशीन-निर्भर; एक कंप्यूटर का कोड दूसरे पर नहीं चलता। मशीन-स्वतंत्र (Portable); विभिन्न कंप्यूटरों पर आसानी से चलती है।
निष्पादन गति अत्यंत तीव्र; बहुत कम या शून्य अनुवाद समय। अनुवादक के कारण निम्न-स्तरीय की तुलना में थोड़ी धीमी।
मेमोरी नियंत्रण पूर्ण नियंत्रण; प्रोग्रामर सीधे बाइट्स प्रबंधित करता है। अनुवादक द्वारा स्वचालित मेमोरी प्रबंधन।
आवश्यक अनुवादक 1GL हेतु कोई नहीं; 2GL हेतु असेंबलर। कंपाइलर अथवा इंटरप्रेटर अनिवार्य।
उपयोग डिवाइस ड्राइवर, फर्मवेयर, ऑपरेटिंग सिस्टम का कोर। सामान्य सॉफ्टवेयर, मोबाइल ऐप्स, वेब विकास, एआई।

मॉड्यूल 4: चतुर्थ एवं पंचम पीढ़ी की भाषाएं: गैर-प्रक्रियात्मक एवं एआई लॉजिक

4.1 चतुर्थ पीढ़ी की भाषाएं (4GL): गैर-प्रक्रियात्मक क्रांति

तृतीय पीढ़ी की भाषाएं प्रोग्रामर के लिए बहुत सुविधाजनक थीं, परंतु वे मूलतः प्रक्रियात्मक (Procedural) थीं। प्रक्रियात्मक भाषा में प्रोग्रामर को कंप्यूटर को दो बातें बतानी पड़ती हैं:

  1. क्या परिणाम चाहिए, और
  2. परिणाम प्राप्त करने के लिए कंप्यूटर को कदम-दर-कदम कैसे कार्य करना है (लूप चलाना, मेमोरी आवंटित करना, रिकॉर्ड पढ़ना)।

1970 और 1980 के दशक में डेटाबेस के विशाल प्रसार के समय ऐसी भाषाओं की मांग उठी जिनमें प्रोग्रामर को लंबी प्रक्रियाएं न लिखनी पड़ें। इसके परिणामस्वरूप चतुर्थ पीढ़ी की भाषाएं (4GL) अस्तित्व में आईं।

1. 4GL का मूल सिद्धांत: डिक्लेरेटिव (Declarative) प्रोग्रामिंग

4GL गैर-प्रक्रियात्मक भाषाएं हैं। इनमें प्रोग्रामर केवल यह बताता है कि उसे क्या परिणाम चाहिए, जबकि वह परिणाम कैसे निकाला जाएगा, यह काम डेटाबेस सॉफ्टवेयर स्वयं तय करता है।

  • कोड की पंक्तियों में $80\%$ से $90\%$ तक की कमी आती है।
  • व्यावसायिक और गैर-तकनीकी उपयोगकर्ता भी आसानी से डेटा खोज सकते हैं।

2. प्रमुख उदाहरण: एसक्यूएल (SQL - Structured Query Language)

एसक्यूएल आज पूरी दुनिया में रिलेशनल डेटाबेस से जानकारी प्राप्त करने की मानक 4GL भाषा है। मान लीजिए हमें कक्षा 7 के उन सभी विद्यार्थियों का नाम और अंक जानना है जिन्होंने 80 से अधिक अंक प्राप्त किए हैं:

  • 3GL (जैसे सी या बेसिक) में इसके लिए फाइल खोलने, एक-एक रिकॉर्ड पढ़ने, लूप चलाने और if जांचने के लिए दर्जनों लाइनें लिखनी पड़तीं।
  • 4GL एसक्यूएल में केवल एक पंक्ति का सरल आदेश पर्याप्त है:
SELECT roll_no, name, marks 
FROM class7_students 
WHERE marks >= 80;

4.2 पंचम पीढ़ी की भाषाएं (5GL): कृत्रिम बुद्धिमत्ता एवं लॉजिक प्रोग्रामिंग

पंचम पीढ़ी की भाषाएं (5GL) प्रोग्रामिंग भाषाओं के विकास का नवीनतम चरण हैं। इनका मुख्य लक्ष्य कृत्रिम बुद्धिमत्ता (Artificial Intelligence - AI), विशेषज्ञ प्रणालियों (Expert Systems) और प्राकृतिक भाषा प्रसंस्करण को सशक्त बनाना है।

1. लॉजिक आधारित कार्यप्रणाली

पारंपरिक भाषाओं के विपरीत, 5GL में कोई चरणबद्ध एल्गोरिदम नहीं लिखा जाता। इसके स्थान पर:

  • प्रोग्रामर सिस्टम को तथ्य (Facts) और तार्किक नियम (Rules) प्रदान करता है, जिससे एक ज्ञान-कोष (Knowledge Base) तैयार होता है।
  • जब उपयोगकर्ता कोई प्रश्न (Query) पूछता है, तो सिस्टम का अंतर्निहित इन्फ्रेंस इंजन (Inference Engine) उपलब्ध नियमों और तथ्यों के आधार पर स्वयं तार्किक निष्कर्ष निकालकर उत्तर दे देता है।

2. प्रमुख 5GL भाषाएं: प्रोलॉग (Prolog) एवं लिस्प (LISP)

  • Prolog (Programming in Logic - 1972): तथ्यों और संबंधों पर आधारित भाषा। जैसे: पिता(दशरथ, राम). पिता(दशरथ, लक्ष्मण). नियम: यदि दो व्यक्तियों के पिता एक ही हैं, तो वे भाई हैं। सिस्टम से पूछने पर कि क्या राम और लक्ष्मण भाई हैं, सिस्टम स्वतः उत्तर देता है—हाँ।
  • LISP (List Processing): प्रारंभिक एआई शोध और प्रतीकात्मक गणनाओं में व्यापक रूप से प्रयुक्त भाषा।

4.3 पांचों पीढ़ियों का तुलनात्मक सारांश

पीढ़ी कालखंड मुख्य सिद्धांत प्रतिनिधि भाषाएं प्रमुख विशेषता प्रमुख सीमा
1GL 1940 का दशक बाइनरी मशीन कोड शुद्ध मशीन भाषा सीधी सीपीयू गति; कोई अनुवादक नहीं। मशीन-निर्भर; त्रुटियों की भरमार; अत्यंत कठिन।
2GL 1950 का दशक निमोनिक कोड असेंबली भाषा बाइनरी से आसान; हार्डवेयर नियंत्रण। मशीन-निर्भर; असेंबलर आवश्यक।
3GL 1960 से वर्तमान उच्च-स्तरीय प्रक्रियात्मक व OOP सी, जावा, पायथन, बेसिक मशीन-स्वतंत्र; अत्यंत सुगम; मॉड्यूलर। कंपाइलर/इंटरप्रेटर अनिवार्य; धीमी गति।
4GL 1970 से वर्तमान डिक्लेरेटिव / गैर-प्रक्रियात्मक SQL, रिपोर्ट जनरेटर केवल 'क्या' बताना होता है; तीव्र विकास। उच्च मेमोरी उपयोग; केवल डेटाबेस तक सीमित।
5GL 1980 से वर्तमान लॉजिक एवं बाधा समाधान प्रोलॉग, लिस्प, मरकरी एआई और ज्ञान-प्रणालियों हेतु आदर्श। अत्यधिक जटिल इन्फ्रेंस प्रक्रिया; भारी संसाधन।

मॉड्यूल 5: भाषा अनुवादक: असेंबलर, कंपाइलर एवं इंटरप्रेटर की कार्यप्रणाली

5.1 भाषा अनुवादक (Language Translators) की अनिवार्यता

कंप्यूटर का इलेक्ट्रॉनिक प्रोसेसर केवल बाइनरी मशीन भाषा ($0$ और $1$) को समझ सकता है। वह अंग्रेजी के शब्दों (जैसे print, while) या असेंबली के निमोनिक्स (ADD, MOV) को सीधे ग्रहण नहीं कर सकता।

अतः प्रोग्रामर द्वारा लिखे गए मानव-पठनीय सोर्स कोड (Source Code) को मशीन द्वारा निष्पादन-योग्य ऑब्जेक्ट कोड (Object Code) में रूपांतरित करने के लिए एक विशेष सिस्टम सॉफ्टवेयर की आवश्यकता होती है। इस सॉफ्टवेयर को भाषा अनुवादक (Language Translator) या लैंग्वेज प्रोसेसर कहा जाता है।

प्रोग्रामिंग भाषा और अनुवाद करने की विधि के आधार पर भाषा अनुवादक तीन प्रकार के होते हैं:

  1. असेंबलर (Assembler)
  2. इंटरप्रेटर (Interpreter)
  3. कंपाइलर (Compiler)

5.2 असेंबलर (Assembler)

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

  • यह निमोनिक कोड्स (जैसे ADD, SUB) को उनके समतुल्य बाइनरी मानों में बदलता है।
  • यह प्रतीकात्मक चरों और लेबलों (जैसे TOTAL, LOOP) के लिए वास्तविक मेमोरी एड्रेस आवंटित करता है।

5.3 इंटरप्रेटर (Interpreter): पंक्ति-दर-पंक्ति अनुवाद

इंटरप्रेटर वह भाषा अनुवादक है जो उच्च-स्तरीय भाषा में लिखे गए सोर्स कोड को एक-एक पंक्ति करके (Line-by-line) पढ़ता है, उसकी जांच करता है और तुरंत निष्पादित करता है।

इंटरप्रेटर की कार्यप्रणाली:

  1. इंटरप्रेटर प्रोग्राम की पहली पंक्ति पढ़ता है।
  2. उस पंक्ति के व्याकरण (सिंटैक्स) की जांच करता है।
  3. यदि उस पंक्ति में कोई गलती मिलती है, तो इंटरप्रेटर तुरंत निष्पादन रोक देता है और त्रुटि संदेश प्रदर्शित करता है।
  4. यदि पंक्ति सही है, तो वह उसे तुरंत मशीनी भाषा में बदलकर सीपीयू से चला देता है।
  5. इसके बाद वह अगली पंक्ति पर जाता है और यही प्रक्रिया अंत तक दोहराता है।

इंटरप्रेटर के लाभ एवं हानियां:

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

5.4 कंपाइलर (Compiler): संपूर्ण प्रोग्राम का एकमुश्त अनुवाद

कंपाइलर वह भाषा अनुवादक है जो उच्च-स्तरीय भाषा में लिखे गए संपूर्ण प्रोग्राम को एक ही बार में (In a single batch) स्कैन करके उसका अनुवाद सीधे मशीन भाषा ऑब्जेक्ट कोड में कर देता है।

कंपाइलर की कार्यप्रणाली:

  1. कंपाइलर पूरे प्रोग्राम को आरंभ से अंत तक एक साथ पढ़ता है।
  2. पूरे प्रोग्राम में जितनी भी सिंटैक्स त्रुटियां होती हैं, उनकी एक संयुक्त सूची (Error List) एक साथ स्क्रीन पर प्रस्तुत करता है।
  3. जब तक प्रोग्रामर सभी गलतियों को ठीक नहीं कर लेता, तब तक कंपाइलर मशीन कोड नहीं बनाता।
  4. सभी त्रुटियां ठीक होने पर यह एक स्थायी स्वतंत्र ऑब्जेक्ट फाइल बनाता है जिसे लिंकर (Linker) की सहायता से अंतिम एक्ज़ीक्यूटेबल फाइल (.exe) में बदल दिया जाता है।

कंपाइलर के लाभ एवं हानियां:

  • लाभ: निष्पादन गति अत्यंत तीव्र होती है क्योंकि अनुवाद पहले ही पूरा हो चुका होता है। तैयार .exe फाइल बिना मूल सोर्स कोड के भी सीधे किसी भी कंप्यूटर पर चल सकती है।
  • हानि: संपूर्ण कोड के कंपाइल होने में समय लगता है; शुरुआती विद्यार्थियों के लिए डिबगिंग थोड़ी जटिल होती है।
  • प्रमुख उदाहरण: सी (C), सी++ (C++), रस्ट (Rust), पास्कल।

5.5 कंपाइलर बनाम इंटरप्रेटर का विस्तृत तुलनात्मक चार्ट

तुलना का बिंदु कंपाइलर (Compiler) इंटरप्रेटर (Interpreter)
अनुवाद विधि पूरे सोर्स कोड का एकमुश्त (एक साथ) अनुवाद करता है। कोड का एक-एक पंक्ति करके क्रमिक अनुवाद करता है।
आउटपुट फाइल एक स्वतंत्र बाइनरी ऑब्जेक्ट फाइल (.exe) बनाता है। कोई स्वतंत्र फाइल नहीं बनाता; सीधे मेमोरी में चलाता है।
निष्पादन गति अत्यंत तीव्र, क्योंकि रनटाइम पर अनुवाद की आवश्यकता नहीं होती। अपेक्षाकृत धीमी, क्योंकि हर बार अनुवाद साथ-साथ चलता है।
त्रुटि प्रदर्शन पूरे प्रोग्राम को स्कैन करने के बाद सभी त्रुटियां एक साथ दिखाता है। पहली त्रुटि मिलते ही तुरंत रुक जाता है और लाइन संख्या बताता है।
डिबगिंग थोड़ी कठिन, क्योंकि सभी त्रुटियां ठीक करके दोबारा कंपाइल करना पड़ता है। बहुत आसान, क्योंकि गलती वाली पंक्ति तुरंत सामने आ जाती है।
सोर्स कोड की आवश्यकता एक बार .exe बनने के बाद मूल कोड की जरूरत नहीं रहती। प्रोग्राम चलाने के लिए हर बार मूल सोर्स कोड अनिवार्य है।
उदाहरण C, C++, Rust, Fortran Python, Ruby, JavaScript, QBASIC

मॉड्यूल 6: प्रोग्रामिंग प्रतिमान, सिंटैक्स नियम एवं प्रोग्रामिंग त्रुटियां (बग्स)

6.1 प्रोग्रामिंग प्रतिमान (Programming Paradigms)

प्रोग्रामिंग प्रतिमान से तात्पर्य किसी प्रोग्राम की संरचना, तार्किक दृष्टिकोण और कोडिंग शैली से है:

  1. प्रक्रियात्मक प्रोग्रामिंग (Procedural Programming - POP): इसमें प्रोग्राम को छोटे-छोटे कार्यों या फलनों (Functions/Procedures) में विभाजित किया जाता है जो क्रमवार निष्पादित होते हैं (जैसे सी और बेसिक)।
  2. ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (Object-Oriented Programming - OOP): इसमें सॉफ्टवेयर को वास्तविक दुनिया की वस्तुओं (Objects) के रूप में ढाला जाता है, जिसमें डेटा (Data) और क्रियाएं (Methods) एक साथ बंधी होती हैं। इसके प्रमुख सिद्धांत हैं: डेटा छिपाना (Encapsulation), कोड पुनः उपयोग (Inheritance) और बहुसांस्कृतिक रूप (Polymorphism) (जैसे जावा, C++, पायथन)।
  3. ब्लॉक-आधारित प्रोग्रामिंग (Block-based Programming): छोटे बच्चों और शुरुआती छात्रों के लिए रंग-बिरंगे ग्राफिकल ब्लॉकों को जोड़कर बनाई जाने वाली प्रोग्रामिंग (जैसे स्क्रैच - Scratch)।

6.2 प्रोग्रामिंग भाषा के मूल सिंटैक्स घटक

  • कीवर्ड (Keywords / Reserved Words): भाषा में पहले से आरक्षित शब्द जिनका अर्थ भाषा के कंपाइलर के लिए निश्चित होता है (जैसे if, else, while, for, def)। इन्हें चर (Variable) के नाम के रूप में उपयोग नहीं किया जा सकता।
  • आइडेंटिफायर (Identifiers): प्रोग्रामर द्वारा चरों, फलनों या सरणियों (Arrays) को दिए गए विशिष्ट नाम (जैसे student_name, total_marks)।
  • ऑपरेटर (Operators): गणितीय और तार्किक गणना करने वाले चिह्न ($+, -, *, /, =, ==, <, >$)।
  • लिटरल्स (Literals): प्रोग्राम में प्रयुक्त निश्चित मान (जैसे संख्या 50 या टेक्स्ट "पटना").

6.3 प्रोग्रामिंग त्रुटियों (Bugs) का वर्गीकरण एवं डिबगिंग

कंप्यूटर प्रोग्राम में आने वाली किसी भी गलती या दोष को तकनीकी भाषा में बग (Bug) कहा जाता है। 1947 में वैज्ञानिक ग्रेस हॉपर ने एक रिले स्विच में फंसे वास्तविक पतंगे (Moth) को निकाला था, जिसके बाद से गलतियों को खोजने और ठीक करने की प्रक्रिया को डिबगिंग (Debugging) कहा जाने लगा।

प्रोग्रामिंग त्रुटियां तीन प्रमुख श्रेणियों में बंटी होती हैं:

1. सिंटैक्स त्रुटि (Syntax Error)

  • कारण: भाषा के व्याकरण, स्पेलिंग या विराम चिह्नों के नियमों का उल्लंघन (जैसे कोष्ठक बंद न करना, स्पेलिंग गलत लिखना prnt के स्थान पर print)।
  • पहचान: कंपाइलर या इंटरप्रेटर द्वारा प्रोग्राम चलने से पहले ही पकड़ ली जाती है। जब तक सिंटैक्स त्रुटि ठीक नहीं होती, प्रोग्राम बिल्कुल नहीं चल सकता।

2. लॉजिकल त्रुटि (Logical Error / Semantic Error)

  • कारण: प्रोग्रामर के सोचने के तरीके, गणितीय सूत्र या एल्गोरिदम में गलती।
  • पहचान: प्रोग्राम बिना किसी त्रुटि संदेश के सफलतापूर्वक चल जाता है, परंतु गलत परिणाम (Wrong Output) देता है। जैसे आयत का क्षेत्रफल निकालते समय गुणा के स्थान पर जोड़ का सूत्र लगा देना (area = length + width लिख देना length * width की जगह)। इसे केवल मैन्युअल जांच द्वारा पकड़ा जा सकता है। यह सबसे खतरनाक बग होता है।

3. रनटाइम त्रुटि (Runtime Error)

  • कारण: प्रोग्राम व्याकरण की दृष्टि से सही होता है, परंतु चलते समय कोई असंभव कार्य करने की कोशिश करता है (जैसे किसी संख्या को शून्य से भाग देना $x/0$, या हार्ड डिस्क में अनुपस्थित फाइल खोलने का प्रयास)।
  • पहचान: प्रोग्राम चलना शुरू होता है, परंतु बीच में ही अचानक क्रैश (Crash) हो जाता है।

मॉड्यूल 7: प्रोग्राम विकास जीवन चक्र (PDLC) एवं बिहार के डिजिटल तंत्र में अनुप्रयोग

7.1 प्रोग्राम विकास जीवन चक्र (PDLC - Program Development Life Cycle)

एक सफल, सुरक्षित और त्रुटि-रहित सॉफ्टवेयर तैयार करने के लिए सॉफ्टवेयर इंजीनियर एक अनुशासित छह-चरणीय इंजीनियरिंग पद्धति का पालन करते हैं जिसे प्रोग्राम विकास जीवन चक्र (PDLC) कहा जाता है:

  1. चरण 1: समस्या की परिभाषा एवं विश्लेषण (Problem Definition): समस्या को अच्छी तरह समझना कि क्या इनपुट मिलेगा, क्या आउटपुट चाहिए और किन सीमाओं का ध्यान रखना है।
  2. चरण 2: एल्गोरिदम एवं फ्लोचार्ट की रूपरेखा (Algorithm & Flowchart): कोडिंग शुरू करने से पहले सादी भाषा में चरणबद्ध एल्गोरिदम लिखना और ज्यामितीय प्रतीकों द्वारा फ्लोचार्ट बनाना।
  3. चरण 3: कोडिंग (Coding / Implementation): तैयार एल्गोरिदम को किसी उपयुक्त उच्च-स्तरीय भाषा (जैसे पायथन, जावा, सी) में टाइप करके सोर्स कोड तैयार करना।
  4. चरण 4: परीक्षण एवं डिबगिंग (Testing & Debugging): विभिन्न प्रकार के डेटा (सामान्य, सीमांत और गलत इनपुट) देकर प्रोग्राम की जांच करना और सभी बग्स को दूर करना।
  5. चरण 5: प्रलेखन (Documentation): कोड के भीतर टिप्पणियां (Comments) जोड़ना और उपयोगकर्ताओं के लिए उपयोगकर्ता पुस्तिका (User Manual) तैयार करना।
  6. चरण 6: परिनियोजन एवं रखरखाव (Maintenance): सॉफ्टवेयर को उपयोगकर्ताओं तक पहुंचाना, सुरक्षा पैच लगाना और समय-समय पर नए फीचर्स जोड़ना।

7.2 बिहार के आधुनिक डिजिटल शासन में प्रोग्रामिंग के जीवंत उदाहरण

बिहार राज्य में सॉफ्टवेयर प्रोग्रामिंग और कंप्यूटर भाषाओं ने सरकारी सेवाओं और सार्वजनिक शिक्षा में ऐतिहासिक क्रांति ला दी है:

1. मेधासॉफ्ट (MedhaSoft - प्रत्यक्ष लाभ अंतरण पोर्टल)

  • बिहार सरकार के शिक्षा विभाग द्वारा संचालित यह पोर्टल राज्य के सभी 38 जिलों के 1.5 करोड़ से अधिक स्कूली विद्यार्थियों को छात्रवृत्ति, साइकिल योजना और पोशाक राशि का सीधा बैंक भुगतान करता है।
  • प्रोग्रामिंग का उपयोग: 4GL एसक्यूएल (SQL) और डेटाबेस प्रोग्रामिंग के माध्यम से छात्र पात्रता की त्वरित गणना की जाती है और बिना बिचौलियों के सीधे विद्यार्थियों के खातों में डीबीटी (DBT) किया जाता है।

2. ओएफएसएस बिहार (OFSS Bihar - ऑनलाइन नामांकन सुविधा प्रणाली)

  • बिहार विद्यालय परीक्षा समिति (BSEB) द्वारा 11वीं कक्षा और डिग्री कॉलेजों में केंद्रीयकृत ऑनलाइन नामांकन इसी पोर्टल से होता है।
  • प्रोग्रामिंग का उपयोग: उच्च-स्तरीय भाषाओं (Java/C#) में लिखे गए जटिल एल्गोरिदम लाखों विद्यार्थियों के प्राप्तांकों, आरक्षण नियमों और कॉलेज प्राथमिकताओं का सेकंडों में मिलान करके मेरिट लिस्ट तैयार करते हैं।

3. बिहार बोर्ड का तीव्रतम परीक्षा परिणाम इंजन

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

4. बिहारभूमि (भू-अभिलेख डिजिटलीकरण)

  • राजस्व एवं भूमि सुधार विभाग द्वारा जमीन के खतियान, जमाबंदी और दाखिल-खारिज को ऑनलाइन किया गया है।
  • प्रोग्रामिंग का उपयोग: वेब प्रोग्रामिंग भाषाओं (पायथन, जावास्क्रिप्ट) और डेटाबेस इंजनों द्वारा गांव के कॉमन सर्विस सेंटर (CSC) से भी जमीन के कागजात तुरंत डाउनलोड किए जा सकते हैं।

प्रोग्रामिंग सिंटेक्स, स्टेटमेंट्स एवं भाषा अनुवादक नियम

कंप्यूटर भाषा विकास एवं पीढ़ीगत पदानुक्रम ढांचा (Language Generations Framework)

कंप्यूटर प्रोग्रामिंग भाषाओं का विकास हार्डवेयर सर्किट्री से मानवीय सोच की ओर अमूर्तता का पांच-स्तरीय सफर है:

  1. 1GL (मशीन भाषा): शुद्ध बाइनरी ($0$ और $1$); सीपीयू द्वारा सीधे निष्पादित; अधिकतम गति परंतु पूर्णतः मशीन-निर्भर और डिबग करने में असंभव।
  2. 2GL (असेंबली भाषा): बाइनरी की जगह निमोनिक्स (ADD, MOV); प्रतीकात्मक मेमोरी पते; असेंबलर अनुवादक अनिवार्य; मशीन-निर्भर।
  3. 3GL (उच्च-स्तरीय भाषाएं): अंग्रेजी शब्द और गणितीय सूत्र (C, Java, Python); पूर्ण मशीन-स्वतंत्रता (Portability); कंपाइलर/इंटरप्रेटर अनिवार्य।
  4. 4GL (डिक्लेरेटिव भाषाएं): केवल 'क्या' चाहिए यह बताना होता है, 'कैसे' नहीं (SQL, रिपोर्ट जनरेटर); कोड पंक्तियों में $90\%$ तक कमी।
  5. 5GL (एआई व लॉजिक भाषाएं): कृत्रिम बुद्धिमत्ता और ज्ञान प्रणालियों हेतु (Prolog, LISP); तथ्यों और नियमों पर आधारित स्वचालित निष्कर्ष प्रणाली।
हार्डवेयर-सॉफ्टवेयर अमूर्तता एवं बाइनरी निष्पादन पाइपलाइन ढांचा

डिजिटल प्रोसेसर केवल इलेक्ट्रॉनिक वोल्टेज के आधार पर कार्य करते हैं:

  1. इलेक्ट्रॉनिक सत्य: ट्रांजिस्टर स्विच की भांति कार्य करते हैं; उच्च वोल्टेज = $1$, निम्न वोल्टेज = $0$।
  2. निर्देश संरचना: प्रत्येक मशीनी निर्देश दो भागों से बनता है: ऑपकोड (Opcode - क्या क्रिया करनी है) + ऑपरेंड (Operand - किस डेटा या पते पर करनी है)।
  3. अमूर्तता स्तर:

$$मानव तार्किक विचार → उच्च-स्तरीय कोड → अनुवादक (कंपाइलर) → मशीन बाइनरी (0s/1s) → सिलिकॉन लॉजिक गेट्स$$

यह अमूर्तता प्रोग्रामर को बिना हार्डवेयर वोल्टेज समझे जटिल सॉफ्टवेयर बनाने में सक्षम बनाती है।

भाषा अनुवादक तुलनात्मक संरचना ढांचा (Assembler, Compiler, Interpreter)

भाषा अनुवादक मानव-पठनीय सोर्स कोड को सीपीयू-पठनीय मशीन कोड में बदलते हैं:

  1. असेंबलर: असेंबली भाषा (2GL) को मशीन भाषा (1GL) में बदलता है।
  2. इंटरप्रेटर: उच्च-स्तरीय भाषा को पंक्ति-दर-पंक्ति क्रमिक रूप से अनुवादित और निष्पादित करता है। पहली त्रुटि पर तुरंत रुकता है, जिससे डिबगिंग बहुत आसान होती है, किंतु निष्पादन गति धीमी रहती है।
  3. कंपाइलर: पूरे प्रोग्राम का एकमुश्त अनुवाद करके स्वतंत्र ऑब्जेक्ट फाइल (.exe) बनाता है। सभी सिंटैक्स त्रुटियां एक साथ दिखाता है। निष्पादन के समय अनुवाद की जरूरत न होने के कारण यह अत्यंत तीव्र गति प्रदान करता है।
उच्च-स्तरीय प्रोग्रामिंग प्रतिमान वर्गीकरण ढांचा (POP vs OOP vs Declarative)

प्रोग्रामिंग प्रतिमान कोड की संरचना और तार्किक दृष्टिकोण को निर्धारित करते हैं:

  1. प्रक्रियात्मक प्रतिमान (POP): प्रोग्राम को क्रमवार फलनों और प्रक्रियाओं में विभाजित करता है; डेटा और फलन अलग होते हैं (उदा. C, BASIC)।
  2. ऑब्जेक्ट-ओरिएंटेड प्रतिमान (OOP): सॉफ्टवेयर को वास्तविक दुनिया के 'ऑब्जेक्ट्स' के रूप में मॉडल करता है, जिसमें डेटा और क्रियाएं एक साथ बंधी होती हैं। मुख्य आधार: एनकैप्सुलेशन (डेटा सुरक्षा), इनहेरिटेंस (पुनः उपयोग) और पॉलीमॉर्फिज्म (उदा. Java, C++, Python)।
  3. डिक्लेरेटिव प्रतिमान: प्रक्रिया के बजाय केवल वांछित परिणाम निर्दिष्ट करता है (उदा. SQL)।
  4. ब्लॉक-आधारित प्रतिमान: शुरुआती बच्चों हेतु दृश्य पहेली ब्लॉकों का संयोजन (उदा. Scratch)।
प्रोग्रामिंग त्रुटि वर्गीकरण एवं डिबगिंग पद्धति ढांचा

सॉफ्टवेयर की गलतियों (बग्स) को तीन मुख्य श्रेणियों में विभाजित किया जाता है:

  1. सिंटैक्स त्रुटियां (Syntax Errors): व्याकरण या वर्तनी की गलतियां; कंपाइलर/इंटरप्रेटर द्वारा पहले ही पकड़ ली जाती हैं; कोड चलने से रुक जाता है।
  2. लॉजिकल त्रुटियां (Logical Errors): तार्किक या गणितीय सूत्र की गलतियां (उदा. औसत हेतु a + b / 2 लिखना); प्रोग्राम बिना क्रैश हुए चलता है परंतु गलत परिणाम देता है; केवल परीक्षण द्वारा पकड़ में आती हैं।
  3. रनटाइम त्रुटियां (Runtime Errors): चलते समय आने वाली बाधाएं (उदा. शून्य से भाग देना या फाइल न मिलना); प्रोग्राम बीच में ही क्रैश हो जाता है।
प्रोग्राम विकास जीवन चक्र (PDLC) व्यवस्थित ढांचा

विश्वसनीय सॉफ्टवेयर निर्माण के छह क्रमिक चरण:

  1. समस्या विश्लेषण: इनपुट, आउटपुट और सीमाओं की स्पष्ट परिभाषा।
  2. एल्गोरिदम व फ्लोचार्ट डिजाइन: कोडिंग से पहले कागज पर तार्किक समाधान का खाका तैयार करना।
  3. कोडिंग: उच्च-स्तरीय भाषा में वास्तविक प्रोग्राम लिखना।
  4. परीक्षण एवं डिबगिंग: विभिन्न डेटा देकर त्रुटियों को खोजना और सुधारना।
  5. प्रलेखन (Documentation): कोड में टिप्पणियां और उपयोगकर्ता हेतु गाइड बनाना।
  6. रखरखाव (Maintenance): सुरक्षा पैच लगाना और नए अपडेट जोड़ना।
सोर्स कोड से मेमोरी निष्पादन पाइपलाइन ढांचा

सोर्स कोड से रैम में निष्पादन तक का सफर:

  1. सोर्स कोड: प्रोग्रामर द्वारा टेक्स्ट एडिटर में लिखा गया मूल कोड।
  2. कंपाइलर/असेंबलर: लेक्सिकल, सिंटैक्स और सेमेंटिक विश्लेषण कर ऑब्जेक्ट कोड (.obj) बनाता है।
  3. लिंकर (Linker): ऑब्जेक्ट कोड को सिस्टम लाइब्रेरी से जोड़कर एक्ज़ीक्यूटेबल फाइल (.exe) बनाता है।
  4. लोडर (Loader): ओएस का घटक जो एक्ज़ीक्यूटेबल फाइल को हार्ड डिस्क से रैम में लोड करता है और सीपीयू को निर्देश सौंपता है।
बिहार में ई-गवर्नेंस सॉफ्टवेयर वास्तुकला एवं सार्वजनिक सेवाएं

बिहार की सार्वजनिक डिजिटल सेवाओं की त्रि-स्तरीय संरचना:

  1. डेटाबेस स्तर (4GL SQL): करोड़ों नागरिकों और विद्यार्थियों का सुरक्षित डेटा संचय (मेधासॉफ्ट, बिहारभूमि, ओएफएसएस)।
  2. एप्लिकेशन लॉजिक स्तर (3GL Java, C#, Python): पात्रता नियम, छात्रवृत्ति गणना और परीक्षा परिणाम प्रोसेसिंग।
  3. यूजर इंटरफेस स्तर (HTML, CSS, JavaScript): ग्राम पंचायतों के कॉमन सर्विस सेंटरों तक मोबाइल-अनुकूल सुगम पहुंच।

अवधारणात्मक हल उदाहरण एवं अनुप्रयोग (Solved Examples)

उदाहरण 1
सोर्स कोड (Source Code) और ऑब्जेक्ट कोड (Object Code) में सोदाहरण अंतर स्पष्ट करें।
विस्तृत समाधान / उत्तर:

सोर्स कोड और ऑब्जेक्ट कोड में मुख्य अंतर निम्नलिखित हैं:

  1. सोर्स कोड (Source Code):

    • परिभाषा: किसी प्रोग्रामर द्वारा किसी उच्च-स्तरीय प्रोग्रामिंग भाषा (जैसे पायथन, सी या जावा) में लिखा गया मूल प्रोग्राम सोर्स कोड कहलाता है।
    • पठनीयता एवं निष्पादन: यह मानव द्वारा आसानी से पढ़ा और समझा जा सकता है, परंतु कंप्यूटर का सीपीयू इसे सीधे निष्पादित नहीं कर सकता।
    • उदाहरण: पायथन में लिखा गया कथन:
      print("बिहार बोर्ड कंप्यूटर साइंस में आपका स्वागत है")
      
  2. ऑब्जेक्ट कोड (Object Code):

    • परिभाषा: भाषा अनुवादक (जैसे कंपाइलर या असेंबलर) द्वारा सोर्स कोड का अनुवाद करने के बाद उत्पन्न मशीनी बाइनरी कोड ऑब्जेक्ट कोड कहलाता है।
    • पठनीयता एवं निष्पादन: यह शून्य और एक ($0$s और $1$s) के रूप में होता है जिसे मानव नहीं पढ़ सकते, परंतु कंप्यूटर का हार्डवेयर इसे निष्पादित कर सकता है।
    • उदाहरण: कंपाइलर द्वारा उत्पन्न बाइनरी स्ट्रीम: 01000010 01101001 01101000 01100001 01110010
उदाहरण 2
मशीन भाषा (1GL) और असेंबली भाषा (2GL) की तुलना निम्नलिखित तीन तकनीकी आधारों पर करें: (क) कोड प्रस्तुति, (ख) अनुवादक की आवश्यकता, और (ग) लिखने एवं डिबग करने में सुगमता।
विस्तृत समाधान / उत्तर:

मशीन भाषा (1GL) और असेंबली भाषा (2GL) का तुलनात्मक विश्लेषण:

तकनीकी आधार मशीन भाषा (1GL) असेंबली भाषा (2GL)
(क) कोड प्रस्तुति यह विशुद्ध रूप से बाइनरी अंकों ($0$ और $1$) में लिखी जाती है जो सीधे सीपीयू के रजिस्टरों को सक्रिय करती है। इसमें बाइनरी के स्थान पर छोटे प्रतीकात्मक शब्दों या निमोनिक्स (जैसे ADD, SUB, MOV, JMP) का प्रयोग होता है।
(ख) अनुवादक की आवश्यकता इसमें किसी भी अनुवादक की आवश्यकता नहीं होती; सीपीयू इसे सीधे अपनी मूल भाषा के रूप में चलाता है। इसे मशीन भाषा में बदलने के लिए असेंबलर (Assembler) नामक विशेष अनुवादक सॉफ्टवेयर की आवश्यकता होती है।
(ग) लिखने व सुधारने में सुगमता यह अत्यंत कठिन, मानसिक रूप से थकाऊ और त्रुटिपूर्ण थी; लाखों बाइनरी अंकों में गलती खोजना लगभग असंभव था। मशीन भाषा की तुलना में इसे लिखना, समझना और गलतियां सुधारना बहुत आसान और तीव्र होता है।
उदाहरण 3
प्रोग्राम अनुवाद और निष्पादन के संदर्भ में कंपाइलर और इंटरप्रेटर की कार्यप्रणाली में अंतर स्पष्ट कीजिए। किन्हीं तीन प्रमुख अंतरों को रेखांकित करें।
विस्तृत समाधान / उत्तर:

कंपाइलर और इंटरप्रेटर दोनों उच्च-स्तरीय भाषा का अनुवाद करते हैं, परंतु उनकी कार्यप्रणाली में मूलभूत अंतर हैं:

  1. अनुवाद की रणनीति (Translation Strategy):

    • कंपाइलर (Compiler): संपूर्ण सोर्स कोड फाइल का एकमुश्त (एक साथ) अनुवाद करके एक स्थायी स्वतंत्र बाइनरी ऑब्जेक्ट फाइल (.exe) तैयार करता है।
    • इंटरप्रेटर (Interpreter): कोड का एक-एक पंक्ति करके (Line-by-line) क्रमिक अनुवाद करता है और साथ ही साथ निष्पादित भी करता जाता है।
  2. त्रुटि प्रदर्शन एवं डिबगिंग (Error Reporting):

    • कंपाइलर: पूरे प्रोग्राम को स्कैन करने के बाद सभी सिंटैक्स त्रुटियों की एक संयुक्त सूची एक साथ दिखाता है।
    • इंटरप्रेटर: पहली त्रुटि मिलते ही तुरंत निष्पादन रोक देता है और संबंधित पंक्ति संख्या दिखाता है, जिससे शुरुआती छात्रों के लिए डिबगिंग बहुत सरल हो जाती है।
  3. निष्पादन गति एवं आउटपुट (Execution Speed):

    • कंपाइलर: कंपाइल होने के बाद तैयार .exe फाइल बिना अनुवादक के सीपीयू की पूर्ण गति से अत्यंत तेजी से चलती है।
    • इंटरप्रेटर: चूंकि हर बार चलाते समय अनुवाद साथ-साथ होता है, अतः इसकी निष्पादन गति कंपाइलर की तुलना में धीमी होती है।
उदाहरण 4
प्रोग्रामिंग में आने वाली तीनों प्रमुख त्रुटियों (सिंटैक्स त्रुटि, लॉजिकल त्रुटि और रनटाइम त्रुटि) की परिभाषा दीजिए और प्रत्येक का एक-एक स्पष्ट उदाहरण कोड के साथ समझाइए।
विस्तृत समाधान / उत्तर:

प्रोग्रामिंग त्रुटियों (बग्स) को उनके कारण और व्यवहार के आधार पर तीन श्रेणियों में बांटा जाता है:

  1. सिंटैक्स त्रुटि (Syntax Error):

    • परिभाषा: भाषा के व्याकरण, वर्तनी या संरचनात्मक नियमों का उल्लंघन।
    • पहचान: यह कंपाइलर या इंटरप्रेटर द्वारा प्रोग्राम चलने से पहले ही पकड़ ली जाती है और प्रोग्राम का चलना पूरी तरह रुक जाता है।
    • उदाहरण:
      # सिंटैक्स त्रुटि: अंतिम कोष्ठक और उद्धरण चिह्न बंद नहीं किया गया
      print("नमस्कार बिहार
      
  2. लॉजिकल त्रुटि (Logical Error / Semantic Error):

    • परिभाषा: प्रोग्रामर के तार्किक दृष्टिकोण, गणितीय सूत्र या एल्गोरिदम में गलती।
    • पहचान: प्रोग्राम बिना किसी त्रुटि संदेश के सफलतापूर्वक चल जाता है, परंतु गलत परिणाम (Wrong Output) देता है। यह सबसे कठिन बग है।
    • उदाहरण: आयत का परिमाप ($2 \times (\text{लंबाई} + \text{चौड़ाई})$) निकालने में सूत्र की गलती:
      # लॉजिकल त्रुटि: ऑपरेटर प्राथमिकता के कारण केवल लंबाई 2 से गुणा होगी
      perimeter = 2 * length + width  # गलत!
      # सही सूत्र: perimeter = 2 * (length + width)
      
  3. रनटाइम त्रुटि (Runtime Error):

    • परिभाषा: प्रोग्राम के सक्रिय रूप से चलते समय किसी अवैध या असंभव कार्य के कारण प्रोग्राम का अचानक क्रैश हो जाना।
    • पहचान: प्रोग्राम चलना शुरू होता है, लेकिन अवैध निर्देश आते ही बीच में रुक जाता है।
    • उदाहरण:
      # रनटाइम त्रुटि: किसी संख्या को शून्य से भाग देना गणितीय रूप से असंभव है
      total = 500
      count = 0
      average = total / count  # क्रैश! ZeroDivisionError उत्पन्न होगा
      
उदाहरण 5
प्रोग्राम विकास जीवन चक्र (PDLC) के सभी 6 क्रमिक चरणों का उल्लेख कीजिए और तकनीकी रूप से स्पष्ट कीजिए कि कोडिंग शुरू करने से पहले एल्गोरिदम और फ्लोचार्ट तैयार करना क्यों अनिवार्य है।
विस्तृत समाधान / उत्तर:

प्रोग्राम विकास जीवन चक्र (PDLC) के 6 क्रमिक चरण निम्नलिखित हैं:

  1. चरण 1: समस्या विश्लेषण (Problem Definition): समस्या को समझना, इनपुट-आउटपुट और सीमाओं को स्पष्ट करना।
  2. चरण 2: एल्गोरिदम एवं फ्लोचार्ट निर्माण: समाधान की तार्किक योजना सादी भाषा में लिखना और उसका रेखाचित्र बनाना।
  3. चरण 3: कोडिंग (Coding): तैयार एल्गोरिदम को किसी उच्च-स्तरीय भाषा (पायथन, सी, जावा) में टाइप करना।
  4. चरण 4: टेस्टिंग एवं डिबगिंग (Testing & Debugging): विभिन्न डेटा देकर गलतियों को खोजना और सुधारना।
  5. चरण 5: प्रलेखन (Documentation): कोड में कमेंट्स जोड़ना और यूजर मैन्युअल तैयार करना।
  6. चरण 6: परिनियोजन एवं रखरखाव (Maintenance): सॉफ्टवेयर को उपयोगकर्ताओं तक पहुंचाना और नियमित अपडेट देना।

कोडिंग से पहले एल्गोरिदम और फ्लोचार्ट की तकनीकी अनिवार्यता: बिना योजना के कोडिंग करना बिना नक्शे के मकान बनाने जैसा है:

  • सीधे कोड लिखने से प्रोग्राम की संरचना उलझ जाती है (Spaghetti Code) और गंभीर लॉजिकल त्रुटियां उत्पन्न होती हैं जिन्हें बाद में खोजना बहुत कठिन होता है।
  • एल्गोरिदम बनाने से प्रोग्रामर भाषा के जटिल सिंटैक्स से मुक्त होकर केवल तार्किक शुद्धता पर ध्यान केंद्रित कर पाता है और कागज पर ही 'ड्राई रन' करके गलतियां पकड़ लेता है।
  • एक बार एल्गोरिदम सिद्ध हो जाने के बाद उसे किसी भी प्रोग्रामिंग भाषा में कोड करना अत्यंत सरल और यांत्रिक हो जाता है।
उदाहरण 6
आधुनिक डिजिटल तंत्र में प्रोग्रामिंग भाषाओं के अनुप्रयोग पर निम्नलिखित प्रश्नों के विस्तृत उत्तर दीजिए: (क) डेटाबेस के संदर्भ में 3GL (प्रक्रियात्मक) और 4GL (डिक्लेरेटिव SQL) में क्या अंतर है? (ख) बिहार के 'मेधासॉफ्ट' जैसे ई-गवर्नेंस पोर्टल में भाषा अनुवादकों की क्या भूमिका है? (ग) उच्च-स्तरीय भाषाएं मशीन-स्वतंत्र (Portable) क्यों होती हैं, जबकि असेंबली भाषा मशीन-निर्भर होती है?
विस्तृत समाधान / उत्तर:

(क) डेटाबेस संदर्भ में 3GL और 4GL का अंतर:

  • 3GL (प्रक्रियात्मक दृष्टिकोण): प्रोग्रामर को यह बताना पड़ता है कि क्या करना है और कदम-दर-कदम कैसे करना है। जैसे परीक्षा में उत्तीर्ण छात्रों को खोजने के लिए 3GL में फाइल खोलना, लूप चलाना, एक-एक रिकॉर्ड पढ़ना और if जांचना पड़ता है।
  • 4GL (डिक्लेरेटिव दृष्टिकोण - SQL): प्रोग्रामर केवल यह बताता है कि क्या डेटा चाहिए, जबकि उसे कैसे खोजना है यह डेटाबेस इंजन स्वयं तय करता है। जैसे:
    SELECT student_name, marks FROM bseb_students WHERE marks >= 300;
    
    यह प्रोग्रामर का समय बचाता है और कोड को $90\%$ तक छोटा कर देता है।

(ख) बिहार के 'मेधासॉफ्ट' पोर्टल में अनुवादकों की भूमिका:

  • मेधासॉफ्ट पोर्टल बिहार के सभी 38 जिलों के 1.5 करोड़ विद्यार्थियों की छात्रवृत्ति का डेटा प्रबंधित करता है।
  • सॉफ्टवेयर इंजीनियर इस पोर्टल के नियम उच्च-स्तरीय भाषाओं (जैसे जावा या पायथन) में लिखते हैं।
  • भाषा अनुवादक (कंपाइलर/वर्चुअल मशीन) इस कोड को अत्यंत अनुकूलित मशीनी भाषा (0 और 1) में बदलते हैं जो सर्वर के सीपीयू पर सेकंडों में निष्पादित होती है।
  • यदि अनुवादक न होते, तो इंजीनियरों को करोड़ों छात्रों का यह सिस्टम बाइनरी 0 और 1 में लिखना पड़ता, जो व्यावहारिक रूप से असंभव था।

(ग) मशीन-स्वतंत्रता बनाम मशीन-निर्भरता का कारण:

  • असेंबली भाषा (2GL) सीधे किसी विशिष्ट प्रोसेसर के आंतरिक रजिस्टरों और आर्किटेक्चर के अनुसार लिखी जाती है (जैसे इंटेल के रजिस्टरों के नाम AX, BX हैं, जबकि एआरएम में अलग हैं)। अतः एक प्रोसेसर की असेंबली भाषा दूसरे प्रोसेसर पर नहीं चल सकती।
  • उच्च-स्तरीय भाषाएं (3GL) हार्डवेयर से पूरी तरह मुक्त सार्वभौमिक गणितीय और अंग्रेजी शब्दों में लिखी जाती हैं। जब उसी कोड को किसी दूसरे प्रोसेसर पर चलाना होता है, तो कोड नहीं बदलना पड़ता; केवल उस नए प्रोसेसर के कंपाइलर से उसे दोबारा कंपाइल कर लिया जाता है। कंपाइलर उस प्रोसेसर की विशिष्ट बाइनरी में अनुवाद कर देता है, जिससे कोड पूरी तरह मशीन-स्वतंत्र बना रहता है।

सामान्य गलतियाँ एवं परीक्षक के जाल (Examiner Traps)

सामान्य भ्रम / गलत उत्तर

कंप्यूटर का प्रोसेसर (CPU) उच्च-स्तरीय भाषाओं जैसे पायथन, जावा या सी को बिना किसी अनुवादक के सीधे समझ और चला सकता है।

सही वैज्ञानिक तथ्य

हार्डवेयर स्तर पर कंप्यूटर का सीपीयू केवल बाइनरी मशीन भाषा (0 और 1) को समझता है जो इलेक्ट्रॉनिक स्विचों की ऑन और ऑफ अवस्था दर्शाती है। उच्च-स्तरीय भाषाएं मानव-अनुकूल होती हैं और सीपीयू द्वारा निष्पादित होने से पूर्व कंपाइलर या इंटरप्रेटर द्वारा मशीन कोड में अनुवादित होना अनिवार्य है।

सामान्य भ्रम / गलत उत्तर

कंपाइलर और इंटरप्रेटर दोनों एक ही तरीके से और एक जैसी विधि से किसी प्रोग्राम को चलाते हैं।

सही वैज्ञानिक तथ्य

यद्यपि दोनों अनुवादक हैं, परंतु कंपाइलर पूरे प्रोग्राम का एकमुश्त अनुवाद करके एक स्वतंत्र बाइनरी फाइल (.exe) बनाता है जो बहुत तेज चलती है, जबकि इंटरप्रेटर प्रोग्राम को एक-एक पंक्ति करके पढ़ता और चलाता है तथा गलती मिलने पर तुरंत रुक जाता है।

सामान्य भ्रम / गलत उत्तर

यदि किसी प्रोग्राम में कोई सिंटैक्स त्रुटि नहीं है और वह सफलतापूर्वक कंपाइल हो जाता है, तो वह 100% सही उत्तर ही देगा।

सही वैज्ञानिक तथ्य

कंपाइलर केवल व्याकरण (सिंटैक्स) की जांच करता है। यदि प्रोग्रामर ने गणितीय सूत्र या तर्क में गलती की है (लॉजिकल त्रुटि), तो प्रोग्राम बिना किसी त्रुटि संदेश के चलेगा लेकिन परिणाम बिल्कुल गलत देगा।

सामान्य भ्रम / गलत उत्तर

असेंबली भाषा एक उच्च-स्तरीय भाषा है क्योंकि इसमें अंग्रेजी अक्षरों वाले निमोनिक कोड्स (जैसे ADD, MOV) का उपयोग किया जाता है।

सही वैज्ञानिक तथ्य

असेंबली भाषा द्वितीय पीढ़ी की निम्न-स्तरीय भाषा (2GL) है। यद्यपि इसमें बाइनरी की जगह निमोनिक्स प्रयुक्त होते हैं, परंतु इसके निर्देश सीधे किसी विशिष्ट प्रोसेसर के आंतरिक रजिस्टरों से बंधे होते हैं और यह पूर्णतः मशीन-निर्भर होती है।

सामान्य भ्रम / गलत उत्तर

मशीन भाषा में लिखे गए प्रोग्राम पोर्टेबल होते हैं और किसी भी कंपनी के कंप्यूटर या मोबाइल पर बिना बदलाव के चल सकते हैं।

सही वैज्ञानिक तथ्य

मशीन भाषा सबसे अधिक मशीन-निर्भर भाषा है। इसके बाइनरी 0 और 1 सीधे किसी एक सीपीयू के आंतरिक परिपथ के अनुसार होते हैं। इंटेल प्रोसेसर के लिए बना मशीन कोड एआरएम चिप या एप्पल के प्रोसेसर पर बिल्कुल नहीं चल सकता।

सामान्य भ्रम / गलत उत्तर

चतुर्थ पीढ़ी की भाषाएं (4GL) जैसे एसक्यूएल प्रक्रियात्मक होती हैं और उनमें डेटा खोजने के लिए लंबा एल्गोरिदम लिखना पड़ता है।

सही वैज्ञानिक तथ्य

चतुर्थ पीढ़ी की भाषाएं पूरी तरह गैर-प्रक्रियात्मक (डिक्लेरेटिव) होती हैं। इनमें प्रोग्रामर को 'कैसे खोजना है' का एल्गोरिदम नहीं लिखना पड़ता, बल्कि केवल 'क्या चाहिए' (जैसे SELECT * FROM students) बताना होता है; बाकी काम डेटाबेस इंजन स्वतः करता है।

अध्याय का सार संक्षेप एवं 10 मुख्य निष्कर्ष

मुख्य बिंदु 1
कंप्यूटर केवल बाइनरी मशीन भाषा समझता है; अन्य सभी भाषाओं को चलाने हेतु अनुवादक अनिवार्य है।
मुख्य बिंदु 2
मशीनी निर्देश का प्रारूप ऑपकोड (क्या क्रिया करनी है) और ऑपरेंड (किस डेटा पर करनी है) से मिलकर बनता है।
मुख्य बिंदु 3
उच्च-स्तरीय भाषाएं मशीन-स्वतंत्र होती हैं, जिससे एक ही कोड विभिन्न प्रकार के कंप्यूटरों पर चलाया जा सकता है।
मुख्य बिंदु 4
कंपाइलर एकमुश्त अनुवाद करके स्वतंत्र .exe फाइल बनाता है जिससे प्रोग्राम बहुत तेज गति से चलता है।
मुख्य बिंदु 5
इंटरप्रेटर एक-एक पंक्ति का अनुवाद करता है और पहली गलती पर रुक जाता है, जो शुरुआती सीखने वालों हेतु अत्यंत उपयोगी है।
मुख्य बिंदु 6
सिंटैक्स त्रुटि प्रोग्राम को चलने से रोक देती है, जबकि लॉजिकल त्रुटि में प्रोग्राम चलता है परंतु परिणाम गलत आता है।
मुख्य बिंदु 7
कोडिंग शुरू करने से पहले एल्गोरिदम और फ्लोचार्ट बनाना अनिवार्य है ताकि तर्क की जांच पहले ही हो सके।
मुख्य बिंदु 8
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) डेटा और क्रियाओं को ऑब्जेक्ट्स में बांधकर कोड को सुरक्षित और पुनः उपयोग योग्य बनाती है।
मुख्य बिंदु 9
एसक्यूएल (SQL) जैसी 4GL भाषाएं डेटाबेस से जानकारी प्राप्त करने में प्रोग्रामर का समय और कोड की लंबाई $90%$ तक घटा देती हैं।
मुख्य बिंदु 10
बिहार में 1.5 करोड़ छात्रों की छात्रवृत्ति (मेधासॉफ्ट) और ऑनलाइन नामांकन (OFSS) आधुनिक प्रोग्रामिंग की शक्ति से संचालित हैं।

स्व-मूल्यांकन अभ्यास (Check Your Understanding)

मूल वैचारिक स्पष्टता की जांच के लिए नैदानिक प्रश्न। पहले स्वयं हल करें, फिर उत्तर देखें।

1
1950 के दशक में कंप्यूटर वैज्ञानिकों ने मशीन भाषा (1GL) के स्थान पर असेंबली भाषा (2GL) का उपयोग क्यों शुरू किया?
उत्तर एवं व्याख्या देखें
उत्तर:
2
निम्नलिखित में से कौन-सा भाषा अनुवादक पूरे उच्च-स्तरीय सोर्स कोड का एक साथ एकमुश्त अनुवाद करके स्वतंत्र एक्ज़ीक्यूटेबल फाइल (.exe) बनाता है?
उत्तर एवं व्याख्या देखें
उत्तर:
3
एक छात्र ने आयत का क्षेत्रफल निकालने का प्रोग्राम लिखा। प्रोग्राम बिना किसी त्रुटि संदेश के सफलतापूर्वक चल गया, परंतु उसने 50 के स्थान पर 25 उत्तर दिया। यह किस प्रकार की त्रुटि है?
उत्तर एवं व्याख्या देखें
उत्तर:
4
तृतीय पीढ़ी की उच्च-स्तरीय भाषाओं (3GL) को 'मशीन-स्वतंत्र' (Machine-Independent) क्यों कहा जाता है?
उत्तर एवं व्याख्या देखें
उत्तर:
5
चतुर्थ पीढ़ी की भाषाओं (4GL) जैसे एसक्यूएल (SQL) की सबसे प्रमुख विशेषता क्या है?
उत्तर एवं व्याख्या देखें
उत्तर:
6
प्रोग्राम विकास जीवन चक्र (PDLC) के किस चरण में सादी भाषा में एल्गोरिदम और ज्यामितीय प्रतीकों वाला फ्लोचार्ट बनाया जाता है?
उत्तर एवं व्याख्या देखें
उत्तर:
अध्याय का अध्ययन पूर्ण हुआ?
अभ्यास के लिए तैयार?

ऑनलाइन CBT टेस्ट देकर तैयारी का मूल्यांकन करें

BSEB परीक्षा पैटर्न पर आधारित बहुविकल्पीय प्रश्नों का ऑनलाइन टेस्ट दें। तुरंत परिणाम, समय विश्लेषण और प्रत्येक प्रश्न का विस्तृत हल प्राप्त करें।

STAY UPDATED

Get the Latest Updates

New test series, syllabus updates, exam notifications and more.

Syllabus
Updates
Exam
Alerts
Study
Resources