प्रोग्रामिंग भाषा क्या है ?
कंप्यूटर प्रोग्रामिंग के प्रकार और उदाहरण : प्रोग्रामिंग भाषा में विशिष्ट नियम और शब्द होते हैं, जो एक एल्गोरिथम के लॉजिकल स्टेप्स को व्यक्त करते हैं।

कम्प्यूटर एक मशीन है इसलिए हमारी सामान्य बोलचाल की भाषाओं में लिखे प्रोग्रामों को नहीं समझ सकता। इसलिए कम्प्यूटर के लिए विशेष प्रकार की भाषाओं में प्रोग्राम लिखे जाते हैं। इन भाषाओं को प्रोग्रामिंग भाषाएँ कहते हैं। इन भाषाओं की अपनी एक अलग व्याकरण (Grammar) होती है और प्रोग्राम लिखते समय उनके व्याकरण का पालन करना आवश्यक है।
प्रोग्रामिंग भाषा के प्रकार
प्रोग्रामिंग भाषाओं को तीन प्रमुख भागों में विभाजित किया गया है :
- निम्न स्तरीय भाषाएँ (Low Level Language)
- मध्य स्तरीय भाषाएँ (Middle Level Language)
- उच्च स्तरीय भाषाएँ (High Level Language)
निम्न स्तरीय भाषाएँ (Low Level Language)
इस प्रकार की भाषा में की जाने वाली प्रोग्रामिंग कम्प्यूटर की स्मृति (Memory) तथा सी०पी०यू० (CPU) में उपस्थित रजिस्टर्स (Registers) के आधार पर की जाती है। हम जानते हैं कि एक कम्प्यूटर की संरचना (Architecture) दूसरे कम्प्यूटर से भिन्न होती है, जिस कारण, अलग-अलग कम्प्यूटरों के लिए निम्न स्तरीय भाषा (Low Level Language) में लिखे अलग- अलग प्रोग्रामों का प्रयोग किया जाता है। इन भाषाओं को ‘मशीन आधारित भाषाएँ’ (Machine Dependent Languages) भी कहते हैं। ऐसी भाषाओं में लिखे गए प्रोग्रामों के एक्जीक्यूशन की गति अधिक होती है, क्योंकि कम्प्यूटर उसके निर्देशों का सीधे ही एक्जीक्यूशन कर सकता है। इस प्रकार की भाषा में प्रोग्रामिंग करने के लिए, यह आवश्यक है कि प्रोग्रामर को कम्प्यूटर की संरचना (Architecture) का समुचित ज्ञान हो।
इस श्रेणी में दो भाषाएँ आती हैं–
- मशीनी भाषा (Machine Language)
- असेम्बली भाषा (Assembly Language)
मशीनी भाषा (Machine Language)
इसको प्रथम पीढ़ी की भाषा भी कहते हैं। इस भाषा में बाइनरी अंकों (0 व 1) के आधार पर प्रोग्रामिंग होती है। इसमें निर्देशों (Instructions), रजिस्टर्स (Registers), स्मृति लोकेशन (Memory Location) व डाटा (Data) को; बाइनरी रूप में दिया जाता है। इस भाषा को, कम्प्यूटर बिना किसी अनुवादक सॉफ्टवेयर (Translator Software) का प्रयोग किए, सरलता से समझ सकता है। इस भाषा में लिखे किसी भी प्रोग्राम को, सीधे ही कम्प्यूटर द्वारा क्रियान्वित (execute) किया जाता है।
मशीनी भाषा में लिखे निर्देश (Instruction) के दो भाग होते हैं-
- ऑपरेशन पार्ट (Operation Part) — इसे Op-code भी कहते हैं। यह कम्प्यूटर को यह बताता है कि उसे किस प्रकार का ऑपरेशन (Operation) करना है।
- एड्रेस पार्ट (Address Part) – यह कम्प्यूटर को यह बताता है कि इस Operation के लिए आवश्यक डाटा कहाँ से मिलेगा तथा ऑपरेशन (Operation) हो जाने के पश्चात् परिणाम (Result) को, कहाँ पर संगृहीत करना है।
मशीनी भाषा के गुण
मशीनी भाषा के निम्नलिखित गुण होते हैं :
- कम्प्यूटर मशीनी भाषा को सीधा ही समझ सकता है, इसीलिए इस भाषा में लिखे प्रोग्राम को क्रियान्वित (execute) करने के लिए अनुवादक सॉफ्टवेयर (Translator Software) की आवश्यकता नहीं होती है।
- इस भाषा में अनुवादक सॉफ्टवेयर (Translator Software) की आवश्यकता नहीं होती है तथा यह भाषा सीधे स्मृति लोकेशन (Memory Location) व रजिस्टर (Register) पर कार्य करने की सुविधा प्रदान करती है। इस भाषा में लिखे प्रोग्राम अधिक तेज गति से क्रियान्वित (execute) होते हैं।
- मशीनी भाषा में लिखे प्रोग्रामों के द्वारा, हम कम्प्यूटर के स्रोतों (Resources) का पूर्ण रूप से प्रयोग कर सकते हैं।
मशीनी भाषा के अवगुण
मशीनी भाषा के प्रमुख अवगुण निम्नलिखित हैं-
- मशीन आधारित भाषा होना—यह भाषा कम्प्यूटर (Computers) की संरचना पर निर्भर करती है, जिस कारण यह आवश्यक नहीं है कि एक प्रकार के कम्प्यूटर पर सही तरीके से चल रहा प्रोग्राम, दूसरे प्रकार के कम्प्यूटर पर भी सही प्रकार से ही चलेगा। इसी कारण, अलग-अलग कम्प्यूटरों के लिए, अलग-अलग प्रोग्राम लिखने पड़ते हैं।
- प्रोग्रामिंग में असुविधा—मशीनी भाषा में निर्देशों (Instructions) को 1 व 0 के रूप में लिखा जाता है। अतः मशीनी भाषा में प्रोग्रामिंग करना अत्यन्त कठिन होता है।
- गलतियों को खोजने व सुधारने में असुविधा — मशीनी भाषा में लिखे प्रोग्राम में गलतियों (Errors) को खोजना तथा प्रोग्राम में परिवर्तन करना अत्यन्त कठिन होता है।
- कम्प्यूटर की संरचना का ज्ञान — यह भाषा मशीन आधारित (Machine Dependent) होती है। अतः यह अत्यन्त आवश्यक है कि प्रोग्रामर को कम्प्यूटर की संरचना का भी पर्याप्त ज्ञान हो।
असेम्बली भाषा (Assembly Language)
इस भाषा को ‘द्वितीय पीढ़ी (Second Generation) की भाषा’ भी कहा जाता है। इस भाषा में मशीनी भाषा के बाइनरी अंकों के स्थान पर वर्णमाला (Alphabets) तथा संख्यात्मक प्रतीकों (Numeric Symbols) का प्रयोग होता है। इस भाषा में कुछ फंक्शन (Function), ऑपरेशन (Operation) व कोड (Code) के लिए प्रतीकों (Symbols) या नामों का प्रयोग किया जाता है, जिसे MNEMONICS कहते हैं। यह भाषा Macro बनाने व उसका प्रयोग करने की सुविधा भी प्रदान करती है।
असेम्बली भाषा के गुण
असेम्बली भाषा के प्रमुख गुण निम्नलिखित हैं-
- असेम्बली भाषा को सीखना व इसमें प्रोग्रामिंग करना मशीनी भाषा की तुलना में सरल है।
- असेम्बली भाषा पढ़ने व समझने में सरल होती है, इस कारण, इसमें त्रुटि (Error) को खोजना व प्रोग्राम में परिवर्तन (Modification) करना सरल होता है।
- मैक्रो (Macro) के प्रयोग के कारण, इसमें एक ही कोड (Code) को एक से अधिक बार लिखने की आवश्यक नहीं पड़ती है।
- असेम्बली भाषा में लिखे प्रोग्राम के द्वारा, हम कम्प्यूटर के स्रोतों (Resources) का पूर्ण रूप से प्रयोग कर सकते हैं।
असेम्बली भाषा के अवगुण
असेम्बली भाषा के प्रमुख अवगुण इस प्रकार हैं-
- असेम्बली भाषा को कम्प्यूटर नहीं समझ सकता है। अतः इस भाषा को असेम्बलर (Assembler) द्वारा, मशीनी भाषा में बदलने की आवश्यकता होती है।
- यह मशीन आधारित (Machine Dependent) भाषा होती है। इसलिए इस भाषा में, एक प्रकार के कम्प्यूटर के लिए लिखा प्रोग्राम अन्य प्रकार के कम्प्यूटरों पर नहीं चलाया जा सकता है।
- यह मशीन आधारित (Machine Dependent) भाषा होती है। इसलिए यह आवश्यक है कि प्रोग्रामर को कम्प्यूटर की संरचना का पर्याप्त ज्ञान भी हो।
मध्य स्तरीय भाषाएँ (Middle Level Language)
ये भाषाएँ निम्न स्तरीय तथा उच्च स्तरीय भाषाओं के मध्य पुल (Bridge) का कार्य करती है। C भाषा को मध्य स्तरीय भाषा कहा जाता है, क्योंकि इसमें उच्च स्तरीय तथा निम्न स्तरीय दोनों भाषाओं के गुण हैं।
उच्च स्तरीय भाषाएँ (High Level Language)
उच्च स्तरीय भाषाओं (High Level Languages) का विकास निम्न स्तरीय भाषाओं (Low Level Languages) पर आधारित प्रोग्रामिंग में आने वाली समस्याओं को दूर करने के लिए किया गया था। ये भाषाएँ कम्प्यूटर की आन्तरिक कार्यप्रणाली पर आधारित नहीं होती हैं। अतः HLL में प्रोग्रामिंग करने के लिए यह आवश्यक नहीं था कि प्रोग्रामर को कम्प्यूटर की संरचना का पूर्ण रूप से ज्ञान हो। इन भाषाओं में अंग्रेजी के कुछ चुने हुए शब्दों और साधारण गणित में प्रयोग किए जाने वाले चिह्नों का प्रयोग किया जाता है।
HLL के साथ एक समस्या यह है कि इस भाषा में लिखे गए प्रोग्राम को अनुवादक (Translator) के द्वारा, मशीनी भाषा में बदलने की आवश्यकता होती है। HLL को मशीनी भाषा में बदलने के लिए इन्टरप्रेटर (Interpreter) व कम्पाइलर (Compiler) नाम के दो Translator उपस्थित होते हैं, जो विभिन्न गुणों के आधार पर एक-दूसरे से अलग होते हैं।
उच्च स्तरीय भाषाओं का वर्गीकरण (Classification of High Level Languages)
विभिन्न गुणों के आधार पर उच्च स्तरीय भाषा को दो श्रेणियों में बाँटा जा सकता है-
- समस्या आधारित भाषा (Problem Oriented Language)
- प्रक्रिया आधारित भाषा (Procedure Oriented Language)
- समस्या आधारित भाषा (Problem Oriented Language ) — इस प्रकार की भाषाओं में समस्या के समाधान के विस्तृत ब्यौरे के स्थान पर परिणाम (Output) पर ध्यान देना होता है। इन भाषाओं में, समस्याओं को हल करने की पूर्व निर्मित विधियाँ संगृहीत रहती हैं। इनके उदाहरण हैं— FoxPro, Oracle, MS SQL आदि।
- प्रक्रिया आधारित भाषा (Procedure Oriented Language ) — इस प्रकार की भाषाओं में समस्या को हल करने की विधि का विस्तृत ब्यौरा दिया जाता है। इस प्रकार की भाषाओं में इस तथ्य पर ध्यान दिया जाता है कि समस्या का समाधान किस प्रकार किया जाएगा।इनके उदाहरण हैं—BASIC, C, C++ आदि।
उच्च स्तरीय भाषा के गुण
उच्च स्तरीय भाषा (HLL) के प्रमुख गुण निम्नलिखित हैं –
- HLL में प्रोग्रामिंग के लिए, अंग्रेजी शब्दों का प्रयोग किया जाता है। इस प्रकार की भाषा को सीखना व इसमें प्रोग्रामिंग करना सरल होता है।
- HLL मशीन आधारित नहीं होती है। अतः एक प्रकार की मशीन (कम्प्यूटर) के लिए बनाए गए प्रोग्राम को दूसरे प्रकार के कम्प्यूटर पर सरलता से चलाया जा सकता है।
- अंग्रेजी के शब्दों के प्रयोग के कारण, इसमें लिखे प्रोग्राम में त्रुटि को खोजना व प्रोग्राम में परिवर्तन करना सरल होता है।
- HLL में यह आवश्यक नहीं होता कि प्रोग्रामर को कम्प्यूटर की आन्तरिक बनावट का अच्छा ज्ञान हो।
- HLL की Library का प्रयोग हम आवश्यकता पड़ने पर कर सकते हैं।
- HLL में अंग्रेजी भाषा का प्रयोग होने के कारण इनमें बने प्रोग्राम का प्रबन्धन (Documentation) सरलता से हो जाता है।
- HLL में प्रोग्रामिंग करने में निम्न स्तरीय भाषा (Low Level Language) की तुलना में कम समय लगता है।
कुछ उच्च स्तरीय भाषाएँ तथा उनके अनुप्रयोग क्षेत्र (Some High Level Languages and their Application Area)
भाषा (Language) | वर्ष (Year) | डवलपर (Developer) | अनुप्रयोग क्षेत्र (Application Area) | प्रकृति (Nature) |
FORTRAN (Formula Translation) | 1957 | प्रोग्रामर्स के एक समूह ने बेल प्रयोगशाला में विकसित की। | गणित के क्षेत्र के लिए (विशेषकर वैज्ञानिक गणना के लिए) | कम्पाइल्ड |
ALGOL (Algorithmic Language) | 1958 | यूरोपियन तथा अमेरिकी कम्प्यूटर वैज्ञानिकों ने सामूहिक रूप से विकसित की। | वैज्ञानिक अनुप्रयोग के लिए | कम्पाइल्ड |
LISP (List Processing) | 1958 | जॉन मकार्थी (John McCarthy) ने MIT इन्स्टीट्यूट में विकसित की। | आर्टिफिशियल इण्टेलिजेन्स के क्षेत्र में | कम्पाइल्ड और इण्टरप्रेटेड |
COBOL (Common Business Oriented Language) | 1959 | ग्रेस हूपर (Grace Hopper) ने विकसित की। | बिजनेस उद्देश्य के लिए | कम्पाइल्ड |
BASIC (Beginner’s All Purpose Symbolic Instruction Code) | 1964 | जॉन जी केमेनी और थॉमस ई कुर्टज ने डर्टमाउथ कॉलेज न्यू थॉमस में विकसित की। | शिक्षण कार्य के लिए | इण्टरप्रेटेड |
PASCAL | 1970 | निकलोस विर्थ (Niklaus Wirth) ने विकसित की। | शिक्षण कार्य के लिए | कम्पाइल्ड |
C++ | 1985 | बज़ारने स्ट्रोस्ट्रप (Bjarne Stroustrup) ने बेल प्रयोगशाला में विकसित की। | सिस्टम ऑब्जेक्ट प्रोग्रामिंग के लिए | कम्पाइल्ड |
JAVA | 1995 | जेम्स गोसलिंग ने सन माइक्रोसिस्टम में विकसित की। | इण्टरनेट आधारित प्रोग्रामिंग के क्षेत्र में | कम्पाइल्ड और इण्टरप्रेटेड |
भाषा अनुवादक (Language Translator)
इन्टरप्रेटर (Interpreter)
यह एक अनुवादक प्रोग्राम है, जिसका प्रयोग HLL को मशीनी भाषा में बदलने के लिए किया जाता है। यह HLL में लिखे प्रोग्राम के कथन को एक-एक करके, मशीनी भाषा में अनुवादित एवं क्रियान्वित (execute) करता है। जब एक कथन का क्रियान्वयन (execution) हो जाता है तो यह इससे अगले कथन को मशीनी भाषा में अनुवादित एवं क्रियान्वित करता है। यह क्रिया तब तक चलती रहती है, जब तक कि प्रोग्राम का अन्त न हो जाए। यदि इस प्रक्रिया (Process) के अन्तर्गत किसी कथन में कोई त्रुटि (error) आ जाती है तो यह कथन को अनुवादित व क्रियान्वित (execute) करने की क्रिया को वहीं रोककर, प्रोग्रामर को पहले इस त्रुटि (error) को दूर करने (सही करने) के लिए कहता है तथा तब तक आगे नहीं बढ़ता है, जब तक कि प्रोग्रामर त्रुटि (error) को दूर न कर दे।
कम्पाइलर (Compiler)
यह भी एक अनुवादक प्रोग्राम (Translator Program) है, जो HLL को मशीनी भाषा में अनुवादित करने का कार्य करता है। यह HLL में लिखे प्रोग्राम के एक-एक कथन (Statement) का अनुवाद (Translation) व क्रियान्वयन (execution) न करके, सम्पूर्ण प्रोग्राम को, एक ही बार में, मशीनी भाषा में अनुवादित करता है। यदि प्रोग्राम में कहीं त्रुटि (error) होती है तो यह प्रोग्राम में, जहाँ-जहाँ त्रुटि (error) होती है, उसकी एक सूची (List) प्रोग्रामर को देता है। अनुवाद करने के बाद, यह स्रोत प्रोग्राम (Source Program) HLL में लिखे प्रोग्राम के तुल्य, मशीनी भाषा में लिखे प्रोग्राम की एक फाइल बनाता है, जिसको obj फाइल कहते हैं। इसका नाम स्रोत प्रोग्राम (Source Program) की फाइल के नाम पर ही होता है, परन्तु इसका विस्तारित नाम obj होता है।
कम्पाइलर के कार्य
कंपाइलर निम्न कार्य करता है –
- यह स्रोत प्रोग्राम (Source Program) को मशीनी भाषा में बदलता है।
- यदि प्रोग्राम अलग-अलग टुकड़ों में होता है तो उन टुकड़ों को आपस में Link करता है।
- प्रोग्राम के लिए, मुख्य स्मृति (प्राथमिक स्मृति) में स्थान (Space) बनाता है।
- obj फाइल को डिस्क या चुम्बकीय टेप पर बनाता है।
- स्रोत (Source) प्रोग्राम में उपस्थित त्रुटि ( error) की सूची बनाकर, उसे प्रोग्रामर के सामने प्रस्तुत करता है।
कम्पाइलर व इन्टरप्रेटर की तुलना (Comparison between Compiler and Interpreter)
कम्पाइलर (Compiler) | इन्टरप्रेटर (Interpreter) |
यह सम्पूर्ण स्रोत प्रोग्राम (Source Program) को एक बार में ही मशीनी भाषा में अनुवादित करता है। | यह स्रोत प्रोग्राम (Source Program) के एक-एक कथन (Statement) को अनुवादित व क्रियान्वित (execute) करता है। |
यह obj फाइल बनाता है अतः स्रोत प्रोग्राम (Source Program) को बार-बार अनुवादित नहीं करना पड़ता । | यह obj फाइल नहीं बनाता है, अतः प्रोग्राम को प्रत्येक बार चलाने से पहले अनुवादित करना पड़ता है। |
यह सम्पूर्ण स्रोत प्रोग्राम (Source Program) को एक ही बार में अनुवादित करता है, जिस कारण यह इन्टरप्रेटर (Interpreter) से 5 से 25 गुना तेज होता है। | यह स्रोत प्रोग्राम (Source Program) को एक-एक लाइन करके अनुवादित करता है, इसीलिए यह गति में कम्पाइलर (Compiler) से मन्द होता है। |
कम्पाइलर (Compiler) का आकार इन्टरप्रेटर (Interpreter) के आकार की तुलना में अधिक होता है, जिस कारण इसको ज्यादा स्मृति (Memory) की आवश्यकता होती है। | इन्टरप्रेटर (Interpreter) का आकार कम्पाइलर (Compiler) के आकार की तुलना में कम होता है, जिस कारण यह स्मृति (Memory) में कम जगह लेता है। |
You can also join us at QUORA