प्रोग्रामिंग भाषाओं का उपयोग कंप्यूटर को निर्देश देने के लिए किया जाता है, एक ऐसी भाषा में जिसे कंप्यूटर समझ सके।
कंप्यूटर भाषाओं को तीन प्रकारों में वर्गीकृत किया जाता है:
- मशीन भाषाएं (Machine Languages)
- प्रतीकात्मक भाषाएं (Symbolic Languages)
- उच्च-स्तरीय भाषाएं (High-Level Languages)
1. मशीन भाषाएं (Machine Languages)
- कंप्यूटर एक मशीन है। चूंकि इसकी मेमोरी केवल 1 और 0 स्टोर कर सकती है, निर्देश कंप्यूटर को 1 और 0 की धाराओं में दिए जाने चाहिए, यानी बाइनरी कोड।
- ये मशीन द्वारा आसानी से समझने योग्य हैं।
- बाइनरी कोड में लिखे प्रोग्राम्स को सीधे कंप्यूटर में निष्पादन के लिए दर्ज किया जा सकता है और इसे मशीन भाषा के रूप में जाना जाता है।
लाभ
- निष्पादन बहुत तेज है (कोई अनुवाद आवश्यक नहीं)।
हानि
- मशीन भाषा में लिखे प्रोग्राम्स को पढ़ना और लिखना बहुत कठिन है।
- मशीन निर्देश याद रखना मुश्किल है।
- मशीन-निर्भर (पोर्टेबल नहीं)।
- त्रुटि-प्रवण और डीबग करना कठिन।
2. प्रतीकात्मक भाषाएं (Symbolic Languages) / असेंबली भाषा
- इसे असेंबली भाषा भी कहा जाता है।
- एक असेंबली प्रोग्राम में "मेनोनिक्स" (Mnemonics) होते हैं।
- "मेनोनिक" का अर्थ है जानकारी जिसे संक्षिप्त रूप में आसानी से याद रखा जा सके।
- उदाहरण:
MOV AX, 5,ADD AX, BX,JMP LABEL
लाभ
- मशीन भाषा की तुलना में पढ़ना और लिखना आसान।
- मेनोनिक्स याद रखने में आसान।
- हार्डवेयर पर बेहतर नियंत्रण।
हानि
- असेंबली प्रोग्राम्स मशीन-निर्भर हैं (पोर्टेबल नहीं)।
- निष्पादन धीमा (असेंबलर की आवश्यकता)।
- "असेंबलर" असेंबली भाषा को मशीन भाषा में बदलता है।
3. उच्च-स्तरीय भाषाएं (High-Level Languages)
- एक भाषा जो मूल भाषा (अंग्रेजी जैसी) के करीब है, उच्च-स्तरीय भाषा कहलाती है।
- इसमें कंट्रोल स्ट्रक्चर्स, I/O सुविधाएं होती हैं।
- उदाहरण: FORTRAN, COBOL, PASCAL, C, C++, Java, Python, JavaScript, C#, Go, Rust, आदि।
लाभ
- मशीन स्वतंत्रता - प्रोग्राम्स "पोर्टेबल" हैं।
- सीखना और समझना आसान।
- प्रोग्राम लिखने में कम समय लगता है।
- रखरखाव और डीबगिंग आसान।
- समृद्ध लाइब्रेरी और फ्रेमवर्क इकोसिस्टम।
हानि
- उच्च-स्तरीय भाषा प्रोग्राम्स को मशीन भाषा में बदलने के लिए एक ट्रांसलेटर की आवश्यकता होती है।
- कंपाइलर्स (या इंटरप्रेटर्स) उच्च-स्तरीय भाषा को मशीन भाषा में बदलने के लिए उपयोग किए जाते हैं।
- कंपाइलर प्रोग्राम में सभी निर्देशों को एक बार में बदलता है। इंटरप्रेटर एक समय में एक स्टेटमेंट बदलता है।
- निष्पादन गति मशीन/असेंबली से धीमी हो सकती है (हालांकि आधुनिक ऑप्टिमाइजिंग कंपाइलर्स इस अंतर को कम करते हैं)।
भाषा स्तरों की तुलना
| विशेषता | मशीन भाषा | असेंबली | उच्च-स्तरीय |
|---|---|---|---|
| समझने योग्य | केवल मशीन | प्रोग्रामर (कठिनाई से) | मनुष्य (आसानी से) |
| पोर्टेबिलिटी | कोई नहीं | कोई नहीं | उच्च |
| विकास गति | बहुत धीमी | धीमी | तेज |
| निष्पादन गति | सबसे तेज | तेज | मध्यम (ऑप्टिमाइजेशन के साथ तेज) |
| ट्रांसलेटर | कोई नहीं | असेंबलर | कंपाइलर/इंटरप्रेटर |
| उदाहरण | 01001101 00000101 | MOV AX, 5 | x = 5 |
भाषा पीढ़ियाँ
- 1GL - मशीन भाषा
- 2GL - असेंबली भाषा
- 3GL - प्रक्रियात्मक उच्च-स्तरीय (C, Pascal, Fortran, Cobol)
- 4GL - गैर-प्रक्रियात्मक/डोमेन-विशिष्ट (SQL, MATLAB, R)
- 5GL - प्राकृतिक भाषा/AI-आधारित (Prolog, विशेषज्ञ प्रणालियां)
आधुनिक संदर्भ
- अधिकांश विकास उच्च-स्तरीय भाषाओं (3GL/4GL) में होता है।
- प्रदर्शन-महत्वपूर्ण कोड के लिए C/C++/Rust उपयोग किया जाता है।
- कुछ एम्बेडेड सिस्टम्स अभी भी असेंबली का उपयोग करते हैं।
- कंपाइलर ऑप्टिमाइजेशन (LLVM, GCC) उच्च-स्तरीय कोड से अत्यधिक कुशल मशीन कोड उत्पन्न करते हैं।