सॉफ्टवेयर:-
सॉफ्टवेयर कई कम्प्यूटर प्रोग्रामों से मिल कर बनते है। कम्प्यूटर प्रोग्राम किसी विशिष्ट कार्य करने के लिए बहुत सारे निर्देशों (Set of Instruction)से मिल कर बनते है। इन निर्देशों के द्वारा ही कम्प्यूटर को जानकारी दी जाती है की दिए गए डाटा को किस प्रकार प्रोसेस करना है।
सॉफ्टवेयर हार्डवेयर को नियंत्रित करता है। यह विशिष्ट कार्यों को पूरा करने के लिए डेटा को प्रोसेस करता है, एवं किसी अपरिष्कृत कच्चे डाटा को उपयोगी सूचना या जानकारी में परिवर्तित करता है।
बिना सॉफ्टवेयर के कम्प्यूटर कोई भी कार्य नहीं कर सकता है। यह एक अमूर्त (intangible) संसाधन है जिसे देखा या छुआ नहीं जा सकता।

सॉफ्टवेयर की आवश्यकता Need :-
- कम्प्यूटर को प्रारंभ करने के लिए
- पत्र टाइप करने के लिए
- चार्ट का निर्माण करने लिए
- प्रस्तुतीकरण का निर्माण करने के लिए
- अपने डाटा का प्रबंधन करने के लिए
- इन्टरनेट का उपयोग करने के लिए
- ऑपरेटिंग सिस्टम पर निपुणता से कार्य करने के लिए।
सॉफ्टवेयर के प्रकार Types :-
- सिस्टम सॉफ्टवेयर
- एप्लीकेशन साफ्टवेयर
- यूटिलिटिज सॉफ्टवेयर
1. सिस्टम सॉफ्टवेयर:-
यह ऐसा कम्प्यूटर सॉफ्टवेयर है जो हार्डवेयर संसाधनों का प्रबंधन एवं नियंत्रण करता है, जिससे एप्लिकेशन सॉफ्टवेयर के कार्य पूरे हो सके। यह हमारे कम्प्यूटर सिस्टम का एक आवश्यक हिस्सा होता है। जैसे आपरेटिंग सिस्टम।
2. एप्लीकेशन सॉफ्टवेयर :-
एप्लीकेशन साफ्टवेयर कंप्यूटर प्रोग्राम होता है। इन्हें उपयोगकर्ता द्वारा कम्प्यूटर से किसी विशेष काम (User Tasks) को पूरा करने के लिए उपयोग किया जाता है। ये सॉफ्टवेयर यूजर तथा कम्प्यूटर को जोड़ने का कार्य करते है।
यह, सिस्टम सॉफ्टवेयर (जैसे ऑपरेटिंग सिस्टम) के ऊपर चलता है और सीधे उपयोगकर्ता (End User) की जरूरतों को पूरा करता है।
इसे आम लोगों (जैसे छात्र, डॉक्टर, इंजीनियर) के लिए बनाया जाता है। प्रत्येक एप्लीकेशन का एक निश्चित उद्देश्य होता है, जैसे डॉक्यूमेंट बनाना, गेम खेलना या वीडियो एडिटिंग करना। यूजर इसे GUI (ग्राफिकल यूजर इंटरफेस) या कमांड के माध्यम से चलाता है।
उदाहरण – MS Word, Excel, Google Docs, Chrome, Firefox, WhatsApp, Photoshop, Candy Crush
3.यूटिलिटी सॉफ्टवेयर:-
यह एक कम्प्यूटर सॉफ्टवेयर है। इसे विशेष रूप से कम्प्यूटर हार्डवेयर, ऑपरेटिंगसिस्टम या एप्लीकेशन सॉफ्टवेयर को व्यवस्थित करने के लिए हेतु डिजाइन किया गया हैं। या यूटिलिटी सॉफ्टवेयर वे सॉफ्टवेयर होते हैं जो कम्प्यूटर को रिपेएर कर कम्प्यूटर कि कार्यक्षमता को बढ़ाते है तथा उसे और कार्यशील बनाने में मदद करते है।
यूटिलिटी सॉफ्टवेयर के प्रकार :-
1.डिस्क डिफ्रैगमेन्टर 2.स्कैन डिस्क 3. डिस्क किलीनअप 4.एन्टी वाइरस 5. डिस्क चेकर 6. सिस्टम प्रोफाइलर्स 7. वाइरस स्कैनर
ऑपरेटिंग सिस्टम सॉफ्टवेयर :-
ऑपरेटिंग सिस्टम ऐसा पहला सॉफ्टवेयर है, जो कम्प्यूटर के स्टार्ट होने के बाद लोड होता है। यह कम्प्यूटर की बूटिंग प्रोसेस के लिए अत्यंत आवश्यक होता है। बूटिंग प्रोसेस के अलावा दूसरे अन्य एप्लीकेशन सॉफ्टवेयर और यूटिलिटिज सॉफ्टवेयर को चलाने के लिए भी आवश्यक होता है।
आपरेटिंग सिस्टम के कार्य:-
- प्रोसेस मैंनेजमेंट
- मेमोरी मैंनेजमेंट
- डिस्क और फाइल सिस्टम मैंनेजमेंट
- नेटवर्किंग
- सिक्योरिटी मैंनेजमेंट
- डिवाइस ड्राइवर्स
डॉस :-
एम.एस. डॉस का पूरा नाम माइक्रोसाफ्ट डिस्क आपरेटिंग सिस्टम है। एम.एस. डॉस सी.यू.आई पर आधारित है । यह माइक्रो कम्प्यूटर में प्रयोग होता था। सन् 1984 में इनटेल 80286 प्रोसेसर युक्त माइक्रो कम्प्यूटर विकसित किये गये तब इनमें एम.एस. डॉस 3.0 और एम.एस. डॉस 4.0 का विकास किया गया ।
डॉस :-
- एम.एस. डास 16 बिट आपरेटिंग सिस्टम है।
- उपलब्ध स्टोरेज स्पेस की उच्चतम मात्रा 2 जी.बी. होती है।
- यह फाइल प्रबंधन को बेहतर बनाने में सहायक है फाइले बनाना, संपादित करना, हटाना आदि।
- यह उपयोगकर्ता आपरेटिंग सिस्टम है कोई भी उपयोगकर्ता इस आपरेटिंग सिस्टम में एक समय पर काम कर सकता है।
- टेक्सट आधारित इंटरफेस का उपयोगकर्ता है और इसे संचालित करने के लिए टेक्सट और कोड की आवश्यकता होती है।
- डॉस में इनपुट बेसिक सिस्टम कमाण्डस के माध्यम से होता है अर्थात इसे संचालित करने के लिए माउस का उपयोग नही किया जा सकता है।
विण्डोज :-
विण्डोज शब्द माइक्रोसाफ्ट के जी.यू.आई (ग्राफिकल यूजर इंटरफेस) आपरेटिग सिस्टम एम.एस. विण्डोज के विभिन्न संस्करणों के लिए उपयोग किया जाता है। जिसमें हमें एक ऐसा वातावरण मिलता है। जिसमें सभी सुविधाऍ चित्रात्मक रूप में आइकन, मीन्यू, बटनो आदि के रूप में मिलती है। इस आपरेटिंग सिस्टम का नाम विण्डोज इसलिए रखा गया क्योंकि इसमें प्रत्येक साफ्टवेयर एक आयताकार ग्राफिक्स बाक्स के रूप में खुलता है। जो खिडकी की चौखट के सामान होता है। जिसके माध्यम से हम आज कम्प्यूटर को केवल की-बोर्ड से टाइप होने वाले अक्षरो से निकलकर एक नये वातावरण के रूप में देख पाए। विण्डोज सबसे पहले डॉस आपरेटिंग सिस्टम के अंतर्गत एक साफ्टवेयर के रूप में आया जिसका विण्डोज 3.1 संस्करण बहुत लोकप्रिय हुआ। इसके बाद सन् 1955 में यह विण्डोज 95 के नाम से एक सम्पूर्ण आपरेटिंग सिस्टम के रूप में जारी हुआ जिसके अब तक विण्डोज 95, 98, 2000, एम.ई, विण्डोज एक्स.पी., विण्डोज एन.टी., विण्डोज विस्टा, विण्डोज 7, विण्डोज 8, विण्डोज 8.1, विण्डो 10 आदि अनेक संस्करण जारी हुए।
कम्प्यूटर प्रोग्रामिंग लैग्वेज:-
प्रोग्रामिंग भाषा कम्प्यूटर के व्यवहार को कंट्रोल करने के लिए विकसित किया गया है। मानवीय भाषा की तरह प्रोग्रामिंग लैग्वेज के अपने नियम तथा व्याकरण होते है। प्रोग्रामिंग भाषाओं का प्रायोग सूचनाओं का बोध कराने एवं परिचालन करने संबंधित कार्य के बारे में संवाद स्थापित करने में होता है।
मशीन भाषा :-
कम्प्यूटर सिस्टम सिर्फ अंको के संकेतो को समझता है जो कि बाइनरी (0/1) होता है अत: कम्प्यूटर को निर्देश सिर्फ बाइनरी कोड (0/1) में दिया जाता है जो निर्देश बाइनरी कोड में देते है उन्हें मशीनी भाषा कहते है। मशीनी भाषा मशीन के लिए सरल होती है और प्रोग्रामर के लिए कठिन होती है क्योंकि इसमें एरर की संभावनाऍ अधिक होती है मशीन भाषा प्रत्येक कम्प्यूटर सिस्टम पर अलग-अलग कार्य करती है इसलिए एक कम्प्यूटर के कोड दूसरे कम्प्यूटर पर नही चल सकते है।
लाभ :-
- निर्देश की स्टोरेज को आसानी से कंट्रोल कर सकते है।
- मशनी भाषा में दी गई निर्देश जल्दी एग्जिक्यूट होती है।
- मशीन लैग्वेज निर्देश इन्डिविजुअल बिट्स को परिवर्तित करने के लिए उपयोग होती है।
हानि :-
- मशीन भाषा का प्रोग्राम बनाना कठिन होता है।
- यह मशीन पर निर्भर है
- इसे सही करना कठिन होता है।
असेम्बली भाषा:-
असेम्बली भाषा में निर्देश अंग्रेजी के शब्दों के रूप में दिये जाते है जैसे –NOV, ADD, SUB आदि इसे मेमोनिक कोड कहते है। मशीनी भाषा की तुलना में असेम्बली भाषा को समझना सरल होता है लेकिन जैसा कि हम जानते है कम्प्यूटर एक इलेक्ट्रनिक डिवाइस है और यह सिर्फ बाइनरी कोड को समझता है इसलिए जो प्रोग्राम असेम्बली भाषा में लिखा होता है उसे मशीन स्तरीय भाषा में ट्रांसलेट करना होता है जो ट्रांसलेटर असेम्बली भाषा को मशीन भाषा में ट्रांसलेट करता है उसे असेम्बली कहते है।
डाटा को कम्प्यूटर रजिस्ट्रर में स्टोर किया जाता है और प्रत्येक कम्प्यूटर पर अपना अलग रजिस्ट्रर सेट होता है इसलिए असेम्बली भाषा में लिखा प्रोग्राम सुविधाजनक नही होता इसका मतलब यह है कि दूसरे कम्प्यूटर सिस्टम के लिए हमें इसे फिर से ट्रांसलेट करना पड़ता है।
लाभ :-
- मेमोरी लोकेशन के बारे में जानकारी रखने की आवश्यकता नही है।
- असेम्बली लैग्वेज प्रोग्राम को मशीन लैग्वेज प्रोग्राम्स की तुलना में परिवर्तित करना आसान होता है।
- कुछ निर्देश की आवश्यकता होती है।
हानि :-
- यह मशीन पर निर्भर होती है।
- असेम्बली कोड लिखने में समय लगता है।
- प्रोग्राम में पोर्टेबिलटी की कमी होती है।
उच्च स्तरीय भाषा (हाई लेवल लैग्वेज):-
उच्च स्तरीय भाषा सुविधाजनक होने के लक्षणों को ध्यान में रखकर बनायी गयी है, इसका अर्थ यह कि ये भाषा मशीन पर निर्भर करती है। यह भाषा अंग्रेजी के भाषा कोड जैसी होती है, इसलिए इसे कोड करना या समझना सरल होता है। इसके लिए एक लैंग्वेज ट्रांसलेटर प्रोग्राम की आवश्यकता होती हैं, जो उच्च स्तरीय भाषा प्रोग्राम को मशीन कोड में ट्रांसलेट करता है। उसे कम्पाइलर या इंटप्रेटर कहते हैं। फॉरट्रा्रान , बेसिक, कोबोल, पास्कल, जावा इसी श्रेणी की भाषा है। इनको दो जनरेशन में बॉंटा गया है।
1. तृतीय पीढ़ी भाषा 2. चतुर्थ पीढ़ी भाषा
| Generation | Language | Period |
| 1st | Machine Language | 1940 – 1950 |
| 2nd | Assembly Language | 1950 – 1958 |
| 3rd | High Level Language | 1958 – 1985 |
| 4th | 4GLs | 1985- onward |
चतुर्थ पीढ़ी भाषा :-
चतुर्थ पीढ़ी भाषा तृतीय पीढ़ीके भाषाओं उपयोग करने में अधिक सरल होता है सामान्यत: चतुर्थ पीढ़ी की भाषाओं में विजुअल वातावरण होता है जबकि तृतीय पीढ़ी की भाषाओं में टेक्चुअल वातावरण होता था, टेक्चुअल वातावरण में प्रोग्रामर सोर्स कोड को निर्मित करने के लिए अंग्रेजी के शब्दो का उपयोग करते है चतुर्थ पीढ़ी की भाषाओं के एक पंक्ति का कथन तृतीय पीढ़ी के आठ पंक्तियों के कथन बराबर होता है। विजुअल वातावरण में, प्रोग्रामर बटन, लेवल एवं टेक्सट बाक्सों जैसे आइटमों को ड्रैग एवं ड्राप करने के लिए तथा अप्लिकेशन की विजुअल परिभाषा का निर्माण करने के लिए टूलबार का उपयोग करते है इसकी विशेषता आई.डी.ई. (इन्ट्रीग्रेटेड डवलपमेंट इनबारमेंट) है जिनके अप्लीकेशन कम्पाइलर तथा रन टाइप को सर्पोट करते है। माइक्रोसाफ्ट विजुअल स्टूडियो और जावा स्टूडियो इसके दो उदाहारण है।
लाभ :-
चतुर्थ पीढ़ी की भाषा को सीखना सरल है तथा इसमें साफ्टवेयर का विकास करना आसान है।
चतुर्थ पीढ़ी की भाषाओं में टेक्सचुअल इंटरफेस के साथ-साथ ग्राफिकल इटरफेस भी होता है।
प्रोग्रामरो के लिए चतुर्थ पीढ़ी की भाषाओं में विकल्प उपलब्ध रहते है क्योंकि इसकी संख्या काफी बड़ी होती है।
चतुर्थ पीढ़ी की भाषाओं की उपलब्धता कठिन नही है।
हानि :-
चतुर्थ पीढ़ी की भाषाऐ उच्च कन्फीग्रेशन के कम्प्यूटरों पर ही संचालित हो सकता है।
इस पीढ़ी की भाषाओं के लिए विशेषज्ञता की कम आवश्यकता होती है इसका अर्थ यह है कि प्रोग्रामिंग आसान होने के कारण नौसिखिए भी साफ्टवेयर विकसित करने में सक्षम हो पाते है परिणामस्वरूप विशेषज्ञो का महत्व कम हो जाता है।
इस पीढ़ी में प्रोग्रामिंग भाषाओं की एक बड़ी श्रंखला होती है जिससे यह निर्णय ले पाना कठिन हो जाता है कि इसका प्रयोग किया जाए तथा इसे छोडा जाए।
असेम्बलर:-
एक प्रोग्राम होता है जो असेम्बली लैंग्वेज को मशीन लैंग्वेज में अनुवाद करता है। इंटरप्रेटर तथा कम्पाइलर की तरह हाइ लेवल लैंग्वेज को मशीन लैंग्वेज में अनुवाद करता है।असेम्बलर न्यूमोनिक कोड को बाइनरी कोड में बदलता है।
कम्पाइलर :-
कम्पाइलर एक्जिक्यूट बनाने के लिए सोर्स कोड को मशीन कोड में परिवर्तित करता है या कम्पामइलर सोर्स कोड को मशीन कोड में बदलने का कार्य करता है। इसकी कार्य करने की गति अधिक होती है। और यह मेमोरी में अधिक स्थान घेरता है क्योंकि यह एक बार में पूरे प्रोग्राम को रीड करता है और यदि कोई एरर होती है तो एरर मैसेज प्रदर्शित करता है।
इंटरप्रेटर:-
एक प्रोग्राम होता है जो हाइ लेवल लैंग्वेमज में लिखे प्रोग्राम के एक- एक निर्देश को बारी-बारी से मशीन भाषा में परिवर्तित करके एक्जिक्यूट करता है। यह हाइलेवल भाषा के प्रोग्राम के सभी निर्देशों को एक साथ मशीनी भाषा में परिवर्तित नही करता है।