1.1 कंप्यूटर प्रोग्राम का मूल स्वरूप
कंप्यूटर एक अत्यंत तीव्र गति से कार्य करने वाला इलेक्ट्रॉनिक उपकरण है जो प्रति सेकंड अरबों अंकगणितीय गणनाएं और तार्किक निर्णय ले सकता है। परंतु मानव के विपरीत, कंप्यूटर के पास अपनी कोई चेतना, समझ, कल्पना या स्वतंत्र निर्णय लेने की क्षमता नहीं होती। यदि कंप्यूटर को कोई निर्देश न दिया जाए, तो उसका सेंट्रल प्रोसेसिंग यूनिट (CPU) केवल सिलिकॉन चिप्स और इलेक्ट्रॉनिक परिपथों का एक निष्क्रिय पुंज मात्र है। किसी भी कार्य को संपन्न कराने के लिए—चाहे वह परीक्षा का अंकपत्र तैयार करना हो, विद्यालय के छात्रों का विवरण क्रमबद्ध करना हो या कोई डिजिटल चित्र दिखाना हो—कंप्यूटर को स्पष्ट, निश्चित और चरणबद्ध निर्देश देने होते हैं।
- कंप्यूटर प्रोग्राम (Program): किसी विशिष्ट कार्य को संपन्न करने के लिए कंप्यूटर को दिए जाने वाले क्रमबद्ध और स्पष्ट निर्देशों के समूह को प्रोग्राम कहा जाता है।
- प्रोग्रामर (Programmer): वह व्यक्ति जो किसी समस्या का विश्लेषण करके उसके समाधान हेतु तार्किक विधि (एल्गोरिदम) तैयार करता है और उसे किसी कंप्यूटर भाषा में कोड के रूप में लिखता है।
- प्रोग्रामिंग या कोडिंग (Programming / Coding): कंप्यूटर प्रोग्राम की रूपरेखा बनाने, निर्देश लिखने, उनका परीक्षण करने और उनमें उपस्थित त्रुटियों को दूर करने की संपूर्ण प्रक्रिया को प्रोग्रामिंग कहा जाता है।
1.2 संचार का अंतर: प्राकृतिक भाषा बनाम मशीनी हार्डवेयर
मानव अपने विचारों के आदान-प्रदान के लिए हिंदी, अंग्रेजी, उर्दू या मैथिली जैसी प्राकृतिक भाषाओं का उपयोग करता है। प्राकृतिक भाषाएं अत्यंत समृद्ध और लचीली होती हैं, परंतु उनमें अनेकार्थकता (Ambiguity) और संदर्भ पर आधारित अर्थ पाए जाते हैं। उदाहरण के लिए, "सोना" शब्द का अर्थ धातु (Gold) भी हो सकता है और शयन करना (Sleep) भी। मनुष्य अपने सामान्य ज्ञान से संदर्भ समझ लेता है।
इसके विपरीत, इलेक्ट्रॉनिक हार्डवेयर में किसी भी प्रकार की अस्पष्टता के लिए कोई स्थान नहीं होता। कंप्यूटर का सीपीयू विशुद्ध रूप से डिजिटल इलेक्ट्रॉनिक्स पर कार्य करता है:
- सीपीयू के भीतर स्थित लाखों-करोड़ों ट्रांजिस्टर केवल दो अवस्थाओं में रह सकते हैं।
- कम वोल्टेज (0 वोल्ट) को बाइनरी अंक 0 (OFF अवस्था) माना जाता है।
- उच्च वोल्टेज (+5 वोल्ट या +3.3 वोल्ट) को बाइनरी अंक 1 (ON अवस्था) माना जाता है।
चूंकि हार्डवेयर केवल बाइनरी वोल्टेज (0 और 1) की भाषा समझता है, अतः मानव द्वारा कंप्यूटर को निर्देश देने के लिए एक ऐसी विशेष भाषा की आवश्यकता हुई जो पूर्णतः सटीक, नियमबद्ध और अस्पष्टता-रहित हो। इसी भाषा को प्रोग्रामिंग भाषा कहा जाता है।
1.3 प्रोग्रामिंग भाषा के मूल घटक: सिंटैक्स एवं सेमेंटिक्स
प्रत्येक औपचारिक प्रोग्रामिंग भाषा दो प्रमुख आधार स्तंभों पर टिकी होती है:
- सिंटैक्स (Syntax): भाषा के व्याकरण संबंधी कठोर नियम, वर्तनी, विराम चिह्न और संरचना। जिस प्रकार हिंदी में वाक्य रचना के व्याकरणिक नियम होते हैं, उसी प्रकार प्रोग्रामिंग भाषा में भी प्रत्येक कथन लिखने का एक निश्चित प्रारूप होता है। एक अल्पविराम (,) या कोष्ठक की भी गलती होने पर सिंटैक्स त्रुटि उत्पन्न हो जाती है।
- सेमेंटिक्स (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 एक अच्छी प्रोग्रामिंग भाषा के लक्षण
वैज्ञानिक दृष्टिकोण से किसी भी उत्कृष्ट प्रोग्रामिंग भाषा में निम्नलिखित विशेषताएं होनी चाहिए:
- सरलता एवं स्पष्टता: भाषा के नियम सहज और समझने में आसान होने चाहिए ताकि कोड लिखना और समझना सुगम हो।
- पोर्टेबिलिटी (मशीन स्वतंत्रता): एक कंप्यूटर पर लिखा गया प्रोग्राम बिना किसी बड़े बदलाव के विभिन्न प्रकार के हार्डवेयर और ऑपरेटिंग सिस्टम पर चल सके।
- दक्षता: अनुवादित कोड कम से कम सीपीयू समय और मेमोरी का उपयोग करके तेजी से परिणाम दे।
- त्रुटि पहचान क्षमता: भाषा का अनुवादक त्रुटियों को तुरंत चिन्हित करे और प्रोग्रामर को सही मार्गदर्शन दे।