कम्प्यूटर सॉफ्टवेयर और प्रोग्रामिंग (Computer Software and Programming)
꧁ Digital Diary ༒Largest Writing Community༒꧂
꧁ Digital Diary ༒Largest Writing Community༒꧂
सॉफ्टवेयर शब्द का अर्थ, कम्प्यूटर System को चलाने के लिए आवश्यक Instructions के Collection से है। इन Instructions का उद्देश्य विशिष्ट समस्या का समाधान ढूंढना होता है। कम्प्यूटर भाषा के प्रयोग से हम अपनी मशीन के लिए स्वयं सॉफ्टवेयर बना सकते हैं। कम्प्यूटर भाषाजों के अपने चिह्न, वर्ण और उपयोग के नियम होते हैं जो आपको कम्प्यूटर से संचार करने की सुविधा प्रदान करते हैं।
OR
सॉफ्टवेयर कंप्यूटर सिस्टम का वह अमूर्त (Intangible) घटक है, जो निर्देशों (Instructions) और डेटा के एक समूह के रूप में होता है। यह हार्डवेयर को यह निर्देशित करता है कि किसी specific उद्देश्य या task को पूरा करने के लिए उसे कैसे operate करना है।
OR
सरल शब्दों में, सॉफ्टवेयर हार्डवेयर और उपयोगकर्ता के बीच एक इंटरफेस प्रदान करता है, जो उपयोगकर्ता के commands को हार्डवेयर के लिए समझने योग्य machine-level instructions में परिवर्तित करता है।
सॉफ्टवेयर कम्प्यूटर का एक प्रोग्राम है जो ऐसे अनुदेशों को उपलब्ध कराता है जिसके आधार पर कम्प्यूटर हार्डवेयर काम करते हैं। कम्प्यूटर की संरचना में उपयुक्त इलेक्ट्रॉनिक सर्किटम जो सॉफ्टवेयर को निष्पादित करते है हार्डवेयर (Hardware) कहलाते हैं। उदाहरण के लिए दुकान से खरीदी गई टीवी हार्डवेयर है, टी वी स्टेशन से प्रसारित विविध मनोरंजन के कार्यक्रम सॉफ्टवेयर हैं। एक ध्यान देने योग्य बात यह है कि, हॉर्डवेयर में एक बार खर्चा होता है और यह आवश्यक भी है जब कि सॉफ्टवेयर नितांत एवं अत्यावश्यक है। कम्प्यूटर सॉफ्टवेयर को मोटे तौर पर दो वर्गों में वर्गीकृत किया जा सकता है।
1. अनुप्रयोग सॉफ्टवेयर Application Software
2. सैद्धान्तिक सॉफ्टवेयर System Software
अनुप्रयोग सॉफ्टवेयर (जिसे एप्लिकेशन सॉफ्टवेयर या संक्षेप में ऐप भी कहते हैं) वह सॉफ्टवेयर होता है जो उपयोगकर्ता (End-User) के लिए बनाया जाता है ताकि वह कोई विशिष्ट कार्य (Specific Task) कर सके। यह सिस्टम सॉफ्टवेयर के ऊपर चलता है।
कल्पना कीजिए आपके कंप्यूटर/फोन में Windows या Android (सिस्टम सॉफ्टवेयर) है। यह एक खाली मंच (Stage) की तरह है। इस मंच पर जो भी कलाकार (Artist) perform करते हैं, वे सभी अनुप्रयोग सॉफ्टवेयर हैं।
और भी आसान उदाहरण:
सिस्टम सॉफ्टवेयर → रसोईघर (बर्तन, चाकू, स्टोव)
अनुप्रयोग सॉफ्टवेयर → विभिन्न व्यंजनों की रेसिपी (चाय बनाने की विधि, दाल बनाने की विधि)
दस्तावेज़ बनाने के लिए: MS Word और Google Docs जैसे सॉफ्टवेयर का उपयोग होता है। ये रिपोर्ट, लेटर और रिज्यूमे बनाने का काम करते हैं।
गणना करने के लिए: MS Excel और Google Sheets जैसे सॉफ्टवेयर उपयोग में आते हैं। ये डेटा का हिसाब-किताब और चार्ट बनाने का कार्य करते हैं।
प्रस्तुति बनाने के लिए: MS PowerPoint और Canva जैसे अनुप्रयोग प्रयोग किए जाते हैं। ये स्लाइडशो और प्रेजेंटेशन तैयार करने में सहायक होते हैं।
संचार के लिए: WhatsApp, Gmail और Zoom जैसे सॉफ्टवेयर इस्तेमाल होते हैं। ये मैसेज भेजने, ईमेल करने और वीडियो कॉल का कार्य संपन्न करते हैं।
मनोरंजन के लिए: YouTube, Spotify और विभिन्न Games जैसे अनुप्रयोग उपलब्ध हैं। ये वीडियो देखने, संगीत सुनने और गेम खेलने की सुविधा प्रदान करते हैं।
फोटो संपादन के लिए: Adobe Photoshop और Snapseed जैसे सॉफ्टवेयर प्रयोग किए जाते हैं। ये तस्वीरों को एडिट और एन्हांस करने का काम करते हैं।
वेब ब्राउज़िंग के लिए: Chrome, Firefox और Edge जैसे ब्राउज़र उपयोग में आते हैं। ये इंटरनेट पर वेबसाइटें देखने की सुविधा प्रदान करते हैं।
उपयोगकर्ता-केंद्रित (User-Centric): यह सीधे end-user की जरूरतों को पूरा करता है।
विशिष्ट उद्देश्य (Specific Purpose): हर ऐप का एक खास मकसद होता है (जैसे- Word टाइपिंग के लिए, Excel Calculation के लिए)।
सिस्टम सॉफ्टवेयर पर निर्भर: ये ऑपरेटिंग सिस्टम (जैसे Windows, Android) के ऊपर ही चलते हैं।
इंस्टॉल/अनइंस्टॉल करने योग्य: उपयोगकर्ता अपनी जरूरत के हिसाब से apps को install या remove कर सकता है।
जनरल-पर्पस सॉफ्टवेयर (General-Purpose): सामान्य कार्यों के लिए बने software। जैसे- web browser, word processor.
कस्टमाइज्ड सॉफ्टवेयर (Customized): किसी specific organization की खास जरूरतों के लिए बनाया गया software। जैसे- किसी बैंक के लिए अलग से बना accounting software.
वेब-आधारित अनुप्रयोग (Web-Based Apps): जिन्हें चलाने के लिए internet और browser की जरूरत होती है। जैसे- Netflix, Facebook.
मोबाइल ऐप्स (Mobile Apps): स्मार्टफोन और टैबलेट के लिए बने apps। जैसे- Instagram, Paytm.
ये कम्प्यूटर प्रणाली के लिए लिखे जाने वाले सामान्य प्रोग्राम हैं, जो अनुप्रयोग सॉफ्टवेयर लिखने के लिए सही वातावरण उपलब्ध कराने की सुविधा प्रदान करते हैं। कुछ सैद्धान्तिक प्रोग्राम नीचे दिये गये हैं।
कम्पाइलर (Compiler)
यह एक अनुवाद प्रणाली प्रोग्राम है, जिसका प्रयोग उच्च-स्तरीय भाषा प्रोग्राम को मशीन स्तरीय भाषा प्रोग्राम में अन्तरण (change) के लिए किया जाता है।
एक कम्पाइलर एक ऐसा ट्रांसलेटर प्रोग्राम (अनुवादक) है जो उच्च-स्तरीय भाषा (High-Level Language) में लिखे गए सोर्स कोड (Source Code) को निम्न-स्तरीय भाषा (Low-Level Language) यानी मशीनी कोड (Machine Code) में बदलता है, जिसे कंप्यूटर सीधे समझ और Execute (निष्पादित) कर सकता है।
आसान उदाहरण के लिए समझें:
प्रोग्रामर अंग्रेजी जैसी आसान भाषा (जैसे C++, Java, Python) में कोड लिखता है। इसे सोर्स कोड कहते हैं।
कंप्यूटर सिर्फ 0s और 1s (बाइनरी कोड) की भाषा समझता है। इसे मशीनी कोड/ऑब्जेक्ट कोड कहते हैं।
कम्पाइलर इन दोनों के बीच का दुभाषिया (Interpreter) है। यह प्रोग्रामर की भाषा को कंप्यूटर की भाषा में पूरा का पूरा अनुवाद कर देता है।
कम्पाइलर का काम सिर्फ अनुवाद करना ही नहीं है, बल्कि यह कई चरणों में पूरा होता है:
लेक्सिकल एनालिसिस (Lexical Analysis): सोर्स कोड को छोटे-छोटे टुकड़ों (Tokens) में तोड़ता है, जैसे keywords, identifiers, operators आदि। यह बच्चों को पढ़ाने के लिए वाक्यों को शब्दों में तोड़ने जैसा है।
सिंटैक्स एनालिसिस (Syntax Analysis): यह जांचता है कि Tokens सही क्रम (Grammar) में हैं या नहीं। अगर कोई grammatical mistake (Syntax Error) है, तो यहीं रुक जाता है और error दिखाता है। यह किसी वाक्य की व्याकरणिक जांच करने जैसा है।
सिमेंटिक एनालिसिस (Semantic Analysis): यह जांचता है कि कोड का अर्थ सही है या नहीं। जैसे, किसी number को string से जोड़ने की कोशिश करना। यह "दो और आम का जूस" जैसे वाक्य की अर्थहीनता को पकड़ता है।
इंटरमीडिएट कोड जनरेशन (Intermediate Code Generation): कम्पाइलर एक ऐसा कोड बनाता है जो मशीन से स्वतंत्र होता है (जैसे Bytecode)। इसका उपयोग अलग-अलग प्लेटफॉर्म के लिए कोड बनाने में होता है।
कोड ऑप्टिमाइजेशन (Code Optimization): जनरेट किए गए कोड को और भी कुशल (Efficient) और तेज (Faster) बनाने के लिए optimize किया जाता है, ताकि यह कम memory और कम time ले।
कोड जनरेशन (Code Generation): आखिरी स्टेप में, ऑप्टिमाइज्ड कोड को सीधे मशीनी कोड (0s और 1s) में बदल दिया जाता है, जिसे एक्सेक्यूटेबल फाइल (.exe, .out, आदि) के रूप में सेव कर दिया जाता है।
इस पूरी प्रक्रिया को कम्पाइलेशन (Compilation) कहते हैं।
GCC (GNU Compiler Collection): C, C++ जैसी भाषाओं के लिए सबसे प्रसिद्ध कम्पाइलर।
Java Compiler (javac): Java कोड को Bytecode में कम्पाइल करता है।
.NET Compiler: C#, VB.NET आदि के लिए Microsoft का कम्पाइलर।
तेज Execution: एक बार कम्पाइल होने के बाद प्रोग्राम बहुत तेजी से चलता है क्योंकि कंप्यूटर को दोबारा अनुवाद करने की जरूरत नहीं पड़ती।
सुरक्षा (Security): एक्सेक्यूटेबल फाइल में सोर्स कोड छुपा होता है, जिसे आसानी से नहीं देखा या बदला जा सकता।
एरर डिटेक्शन: कम्पाइलेशन के time पर ही syntax और semantic errors पकड़ में आ जाते हैं।
असेम्ब्लर (Assembler)
यह एक और अनुवाद प्रोग्राम है. जिसका प्रयोग असेम्ब्ली भाषा प्रोग्राम को मशीन भाषा प्रोग्राम में अस्तरण (change) करने के लिए किया जाता है।
इन्टरप्रेटर (Interpreter):
यह भी एक अनुवाद सिद्धान्त प्रोग्राम है जिसका उपयोग उच्च स्तरीय भाषा प्रोग्राम को मशीनी भाषा प्रोग्राम में अन्तरण (change) के लिए किया जाता है किन्तु यह पकित-दर-पकित अनुबाद कर निष्पादन करता है
लोडर (Loader):
यह एक सैध्दान्तिक प्रोग्राम है जिसका उपयोग मशीनी भाषा प्रोग्राम को कम्प्यूटर की मेमोरी में संचित करने के लिए किया जाता है।
1 बैच सिस्टम् (Batch Systems)
2. इन्टिरैक्टिव सिस्टम् (Interactive Systems)
3. मल्टिप्रोग्रामिंग (Multiprogramming)
4. टाइम-शेरिंग कम्प्यूटिंग (Time-sharing computing)
5. मल्टिप्रोसोसिंग (Multiprocessing)
6. मल्टिटास्किंग (Multitasking)
7. मल्टियूजर ऑपरेटिंग सिस्टेम (Multiuser Operating System)
समस्या-परिभाषा Problem definition
समस्या, विचारार्थ या समाधान ढूँढ़ने के लिए उठाया गया प्रश्न है।
We are accepting Guest Posting on our website for all categories.
I want to Hire a Professional..
Sanjeev panday
@DigitalDiaryWefru