हमारे सॉफ़्टवेयर प्रोग्रामिंग भाषाओं की निरंतर खोज। इस तीसरी किस्त में, हम एक महत्वपूर्ण पहलू पर प्रकाश डालेंगे जो भाषाओं को अलग करता है: प्रकार प्रबंधन। जबकि हमारी पिछली चर्चाओं में भाषा स्तर < पर चर्चा हुई थी /u>और प्रोग्रामिंग प्रतिमान—अनिवार्य रूप से प्रोग्रामिंग भाषाओं के वास्तुशिल्प ढांचे—आज, हमारा ध्यान यह परिभाषित करने पर केंद्रित है कि प्रत्येक प्रोग्रामिंग भाषा डेटा प्रकार। हम यह पता लगाएंगे कि कैसे ये बारीकियां प्रत्येक भाषा को अलग करती हैं और एक सॉफ्टवेयर डेवलपर के वर्कफ़्लो पर गहरा प्रभाव डालती हैं।
इस लेख के अंत तक, हमारे पिछले लेखों को पूरक करते हुए, आप भाषाओं को न केवल उनकी पठनीयता, विकास की गति, या हार्डवेयर नियंत्रण के आधार पर समझने में सक्षम होंगे, बल्कि इस आधार पर भी कि वे अपने डेटा को वास्तुशिल्प रूप से कैसे तैयार करते हैं। ये तीन लेख सामूहिक रूप से आगामी चर्चाओं के लिए एक व्यापक आधार के रूप में काम करते हैं, जिसमें भाषा-विशिष्ट कैरियर मार्गऔर प्रत्याशित सॉफ़्टवेयर भाषा रुझान जैसे-जैसे हम 2024 के करीब पहुँच रहे हैं।
अस्वीकरण:_111000000-0000-0000-0000-000000000111_यह जानकारी केवल शैक्षिक उद्देश्यों के लिए प्रदान की गई है। कृपया कोई भी करियर निर्णय लेने से पहले किसी भी जानकारी पर शोध करें और पुष्टि करें। |
सामग्री तालिका
टाइप हैंडलिंग को समझना
यह समझना कि प्रोग्रामिंग भाषाएं डेटा को कैसे संभालती हैं मजबूत सॉफ्टवेयर विकास के लिए आवश्यक है। किसी भाषा की प्रकार प्रणाली, जो डेटा संगठन के लिए ज़िम्मेदार है, महत्वपूर्ण प्रभाव डालती है। इसमें मजबूत बनाम कमजोर प्रकार की हैंडलिंग, स्थिर बनाम गतिशील प्रकार की हैंडलिंग और प्रकार की सुरक्षा शामिल है।
परिभाषाएँ
भाषा प्रकार
प्रोग्रामिंग भाषाओं में, एक "प्रकार" एक वर्गीकरण प्रणाली को संदर्भित करता है जो उस प्रकार के डेटा को परिभाषित करता है जिसे एक वेरिएबल रख सकता है या जिस ऑपरेशन पर प्रदर्शन किया जा सकता है यह। यह उन मानों पर प्रतिबंध निर्धारित करता है जो एक विशेष इकाई - जैसे कि एक चर या वस्तु - ले सकती है। प्रकार बुनियादी डेटा प्रकारों से लेकर हो सकते हैं जैसे पूर्णांक, फ्लोट पॉइंट नंबर , डबल सटीक संख्या, अक्षर, और strings से अधिक जटिल संरचनाओं जैसे उपयोगकर्ता-परिभाषित प्रकार। किसी इकाई का प्रकार उन परिचालनों को निर्धारित करता है जो उस पर किए जा सकते हैं, रनटाइम, और डेटा अखंडता और प्रोग्राम शुद्धता।
वेरिएबल: मूल डेटा लेबल
वेरिएबल कंप्यूटर की मेमोरी में संग्रहीत विशिष्ट डेटा से जुड़े लेबल होते हैं और प्रोग्राम के भीतर डेटा को व्यवस्थित रखने के लिए महत्वपूर्ण होते हैं। उनके प्राथमिक कार्य में बुनियादी संख्यात्मक मूल्यों और पाठ से लेकर जटिल और बहुआयामी डेटा संरचनाओं तक जानकारी के विविध स्पेक्ट्रम को समाहित करना शामिल है। अनिवार्य रूप से, ये तत्व कंप्यूटर प्रोग्राम के संदर्भ में डेटा को संग्रहीत और व्यवस्थित करने के लिए जिम्मेदार हैं।
ऑब्जेक्ट्स: डेटा के पैक
ऑब्जेक्ट्स संबंधित वेरिएबल्स और उनकी कार्यक्षमताओं को समूहीकृत करने का एक तरीका है। वे वेरिएबल और ऑपरेशंस दोनों को समाहित करते हैं, वेरिएबल तक पहुंचने, वेरिएबल को संशोधित करने, वेरिएबल को डुप्लिकेट करने, गणना निष्पादित करने आदि जैसे कार्यों को सुविधाजनक बनाते हैं। इन ऑब्जेक्ट्स के बारे में मुख्य बात यह है कि वे एक विशिष्ट प्रकार को परिभाषित करते हैं और प्रोग्रामिंग भाषा के भीतर पूर्वनिर्धारित चर प्रकारों के समान प्रबंधित होते हैं। हालाँकि हम इस लेख के लिए परिभाषा को संक्षिप्त रखेंगे, वस्तुओं की अवधारणा को अगले लेख में अधिक विस्तार से खोजा जाएगा।
स्पष्ट बनाम अंतर्निहित प्रकार की घोषणाएँ
प्रोग्रामिंग में स्पष्ट प्रकार की घोषणाओं में कोड के भीतर चर के डेटा प्रकार को स्पष्ट रूप से बताना शामिल है, जिससे धारणाओं या अस्पष्टता के लिए कोई जगह नहीं बचती है। यह विधि डेटा प्रकार को स्पष्ट रूप से बताती है, प्रोग्रामर और कोड निष्पादित करने वाले सिस्टम दोनों को स्पष्टता प्रदान करती है। दूसरी ओर, अंतर्निहित प्रकार की घोषणाएं तब होती हैं, जब प्रोग्रामिंग भाषा कोड में स्पष्ट रूप से उल्लेख किए बिना किसी चर के डेटा प्रकार का अनुमान लगाती है या मान लेती है। यह संकेत छोड़ने या सिस्टम को सीधे विनिर्देश के बिना निर्दिष्ट मूल्य या प्रासंगिक जानकारी के आधार पर प्रकार का अनुमान लगाने की अनुमति देने के समान है। यह दृष्टिकोण अक्सर शब्दाडंबर को कम करके और अधिक संक्षिप्त और पठनीय कोड की अनुमति देकर कोडिंग को सुव्यवस्थित करता है।
x = 2; | |
int x = 2; |
प्रकार प्रबंधन वर्गीकरण
मजबूत और कमजोर टाइपिंग
प्रोग्रामिंग भाषाओं की दुनिया में, शब्द "दृढ़ता से टाइप किए गए" और "कमज़ोर टाइप किया गया" ये भाषाएं डेटा को कैसे प्रबंधित करती हैं, इस बारे में अक्सर चर्चा होती रहती है। दृढ़ता से टाइप की गई भाषाएँ डेटा प्रकारों के कड़े प्रवर्तन को प्राथमिकता देती हैं, जबकि कमजोर टाइप की भाषाएँ प्रोग्राम निष्पादन के दौरान प्रकारों को संभालने में अधिक लचीलापन प्रदान करती हैं।
हालाँकि, किसी भाषा को कड़ाई से "दृढ़ता से" के रूप में वर्गीकृत करना; या "कमज़ोर" टाइप किया हुआ हमेशा सीधा नहीं होता. हममें से कई लोगों के पास ने C++ को दृढ़ता से टाइप की जाने वाली भाषा माना क्योंकि यह मांग करती है कि आप कोड लिखते समय डेटा प्रकारों को स्पष्ट रूप से लेबल करें। मैं अपने सभी साक्षात्कारों में यही कहता था और जिन अधिकांश इंजीनियरों से मैं मिला हूं वे इससे सहमत थे। यह जानकारी के प्रत्येक टुकड़े को फिट करने के लिए एक विशिष्ट बॉक्स देने जैसा है, और एक बार कोड सेट हो जाने के बाद, ये बॉक्स नहीं बदलते हैं।
हालाँकि, एक और विचारधारा है जो कहती है C++ कमजोर टाइप होने के कारण < /a>. तर्क >यहां इसके बारे में बताया गया है जो इच्छित प्रकार को स्पष्ट रूप से बताए बिना अपेक्षाकृत आसान प्रकार के रूपांतरण की अनुमति देता है। कुछ प्रोग्रामर तर्क देते हैं कि यह लचीलापन, सुविधाजनक होते हुए भी, डेटा को गलत बक्सों में डालकर और त्रुटियाँ पैदा करके समस्याएँ पैदा कर सकता है। इस लेख में बाद में प्रकार रूपांतरण पर चर्चा करते समय हम इसका और अधिक अन्वेषण करेंगे।
यह चर्चा C++ तक सीमित नहीं है; यह कई अन्य प्रोग्रामिंग भाषाओं तक विस्तारित है। इसीलिए, बॉक्सिंग भाषाओं के बजाय सख्ती से "मजबूत" या "कमज़ोर," व्यावहारिक पहलुओं पर ध्यान केंद्रित करना अधिक उत्पादक है। हम प्रकार की सुरक्षा जैसी अवधारणाओं पर चर्चा करेंगे - प्रकार कितने सुरक्षित और विश्वसनीय हैं - और क्या कोई भाषा कोड चलाने से पहले (स्थिर रूप से टाइप किया गया) या चलने के दौरान (गतिशील रूप से टाइप की गई) प्रकारों का पता लगाती है। इन ठोस पहलुओं की जांच करके, हम बेहतर ढंग से समझ सकते हैं कि ये भाषाएं वास्तविक कोडिंग दुनिया में कैसे काम करती हैं, सामान्यीकृत वर्गीकरण से दूर होकर अधिक व्यावहारिक समझ की ओर बढ़ती हैं।
प्रकार की सुरक्षा
भाषा प्रकार की सुरक्षा में डेटा अखंडता सुनिश्चित करने और बेमेल डेटा प्रकारों से उत्पन्न होने वाली त्रुटियों को कम करने के लिए प्रोग्रामिंग भाषाओं में विभिन्न तंत्र शामिल हैं। इसमें विभिन्न तंत्र शामिल हैं जैसे प्रकार अनुमान, प्रकार रूपांतरण, और टाइप चेकिंग। ये तंत्र भाषा के रचनाकारों द्वारा स्थापित किए जाते हैं और अंततः डेटा के निर्माण, डेटा के रूपांतरण और डेटा की गुणवत्ता नियंत्रण की सुरक्षित हैंडलिंग सुनिश्चित करने के लिए प्रोग्रामिंग भाषा में कार्यान्वित किए जाते हैं क्योंकि इसे पूरे प्रोग्राम में नियंत्रित किया जाता है। रनटाइम.
अनुमान प्रकार
प्रकार का अनुमान कुछ प्रोग्रामिंग भाषाओं की एक विशेषता है जो एक प्रोग्रामर को एक वेरिएबल को डेटा निर्दिष्ट करने की अनुमति देता है, जैसे कि x = 3, बिना स्पष्ट रूप से बताए कि कौन सा प्रकार है यह है। बाद में, कंपाइलर या दुभाषिया प्रोग्रामर द्वारा उसे सौंपे गए डेटा से चर प्रकार का अनुमान लगाएगा। उपरोक्त उदाहरण के मामले में, x = 3, कंपाइलर स्वचालित रूप से वेरिएबल को पूर्णांक के रूप में निर्दिष्ट करेगा . कुछ प्रोग्रामिंग भाषाएँ, जैसे स्विफ्ट और < एक href='https://kotlinlang.org/' rel='noreferrer' target='_blank'>कोटलिन, प्रकार अनुमान लागू करें। इस चतुर तंत्र के परिणामस्वरूप अधिक सुव्यवस्थित, पठनीय और संक्षिप्त कोड प्राप्त होता है और लेखन की गति बढ़ जाती है।
दूसरी ओर, कुछ भाषाएँ वेरिएबल्स के लिए स्पष्ट प्रकार की घोषणाओं की मांग करती हैं। उदाहरण के लिए, C में, वेरिएबल को पूर्णांक के रूप में निर्दिष्ट करने के लिए आपको int x = 3 लिखना होगा। यह प्रोग्रामर द्वारा लिखे जाने के समय एक वेरिएबल किस प्रकार का है, इसकी तत्काल और स्पष्ट समझ सुनिश्चित करता है। अधिक क्रियात्मक दिखने के बावजूद, यह स्पष्ट दृष्टिकोण संपूर्ण कोड बेस में परिवर्तनीय प्रकारों को परिभाषित करने में सटीकता बनाए रखकर कोड स्पष्टता को बढ़ाता है, संभावित रूप से कोड सुरक्षा और विश्वसनीयता को बढ़ाता है।
मैं इस बात पर प्रकाश डालना चाहता हूं कि पूर्व-रनटाइम प्रकार की जांच के बिना प्रकार अनुमान पर जोर देने वाली भाषाओं में, प्रोग्रामर को अक्सर बड़े कोडबेस में मैन्युअल रूप से कई त्रुटि-जांच विवरण डालें। कोड के विभिन्न क्षेत्रों के बीच प्रकारों के सही मार्ग की गारंटी के लिए यह आवश्यक है। नतीजतन, ऐसे परिदृश्यों में, प्रकार के अनुमान द्वारा प्रस्तावित कोड वर्बोसिटी में कमी महत्वहीन हो सकती है। इस अंतर को समझना यह समझने में महत्वपूर्ण है कि क्यों कुछ भाषाएँ स्केलेबल सॉफ्टवेयर विकास, एक ऐसा विषय जिस पर हम अपने आगामी लेख में गहराई से चर्चा करेंगे कि प्रोग्रामिंग भाषाएं विशिष्ट कैरियर पथों के साथ कैसे संरेखित होती हैं।
प्रकार के अनुमान का उपयोग करने या स्पष्ट प्रकार की घोषणाओं को चुनने के बीच का विकल्प अक्सर संक्षिप्त कोड तैयार करने और निर्दिष्ट चर प्रकारों के संबंध में अग्रिम स्पष्टता सुनिश्चित करने के बीच संतुलन बनाने पर निर्भर करता है। कुछ प्रोग्रामिंग भाषाएँ, जैसे Rust और C#, दोनों प्रकार के अनुमान के लिए अनुमति दें और स्पष्ट प्रकार की घोषणाएँ।
रूपांतरण प्रकार
प्रकार रूपांतरण एक प्रोग्रामिंग भाषा के भीतर एक सुविधा को संदर्भित करता है जो एक प्रकार को प्रत्यक्ष या अप्रत्यक्ष रूप से दूसरे प्रकार में परिवर्तित करने की अनुमति देता है, जैसे गणितीय अभिव्यक्ति के भीतर। उदाहरण के लिए, फ्लोट y = 3.2/x, जहां x एक , स्पष्ट रूप से x को फ्लोट< में बदल देगा। /span>. C++ जैसी भाषाएँ अंतर्निहित प्रकार के रूपांतरण को प्राथमिकता देती हैं। अन्य भाषाएँ, जैसे Python, a के माध्यम से स्पष्ट प्रकार के रूपांतरण पर जोर देती हैं फीचर को कास्टिंग कहा जाता है। स्पष्ट प्रकार कास्टिंग एक फ़ंक्शन-आधारित प्रकार रूपांतरण को संदर्भित करता है जहां प्रोग्रामर वेरिएबल को एक पूर्वनिर्धारित फ़ंक्शन में सौंपता है जिसका उपयोग भाषा को यह बताने के लिए किया जाता है कि एक वेरिएबल को कैसे और किस प्रकार में परिवर्तित करना है। इसका एक उदाहरण फ्लोट y = 3.2/(फ्लोट)x होगा, जहां x एक पूर्णांक है और (फ्लोट) वह फ़ंक्शन है जिसका उपयोग एक फ्लोट में।
स्पष्ट और अंतर्निहित प्रकार के रूपांतरण के बीच का चुनाव भाषा की पूर्वानुमेयता और प्रकार की त्रुटि की संभावना को प्रभावित करता है। जैसा कि हमने ऊपर कहा, स्पष्टता स्पष्टता को बढ़ाती है लेकिन अधिक क्रियात्मक हो सकती है, जबकि अंतर्निहितता सुविधा प्रदान करती है लेकिन अप्रत्याशित व्यवहार को जन्म दे सकती है। इन अंतरों को समझने से डेवलपर्स को डेटा अखंडता पर भाषा के नियंत्रण को नेविगेट करने में मदद मिलती है जो प्रकार की सुरक्षा को प्रभावित करती है।
प्रकार की बाधाएं
प्रकार की बाधाएं अनिवार्य रूप से एक प्रोग्रामिंग भाषा द्वारा विभिन्न चर पर लगाए गए नियम हैं। उदाहरण के लिए, कुछ प्रोग्रामिंग भाषाओं में, यदि आप किसी पूर्णांक को शून्य से विभाजित करने का प्रयास करते हैं, तो कोड संकलित नहीं होगा। ये बाधाएं संरक्षक के रूप में कार्य करती हैं, कुछ कार्यों या संचालन को रोकती हैं जो कार्यक्रम में त्रुटियों या अप्रत्याशित व्यवहार का कारण बन सकती हैं। यह ध्यान देने योग्य है कि हालांकि विशिष्ट बाधाएं एक भाषा से दूसरी भाषा में भिन्न हो सकती हैं, यह अवधारणा आधुनिक प्रोग्रामिंग भाषाओं में काफी सार्वभौमिक है। कुछ भाषाओं में अन्य भाषाओं की तुलना में सख्त बाधाएं हो सकती हैं, जो कि नियमों के एक स्पष्ट सेट को परिभाषित करती हैं जो यह नियंत्रित करती हैं कि किन कार्यों की अनुमति है या क्या अनुमति नहीं है। अन्य भाषाएँ प्रोग्रामर को बस एक चेतावनी दे सकती हैं यदि वे किसी वेरिएबल का उपयोग इस तरह से करने का प्रयास करते हैं कि इसका उपयोग नहीं किया जाना चाहिए।
जैसे-जैसे प्रोग्रामिंग भाषाएं नए संस्करणों की ओर बढ़ती हैं, प्रकार की बाधाओं का परिदृश्य लगातार विकसित होता जाता है। भाषा डिजाइनर नियमित रूप से नई बाधाओं को शामिल करते हैं, अक्सर पहचानी गई त्रुटियों के जवाब में या भाषा की मजबूती और विश्वसनीयता को बढ़ाने के लिए। हालाँकि, प्रकार की सुरक्षा पर चर्चा करते समय एक महत्वपूर्ण विषय होने के बावजूद, केवल प्रकार की बाधाओं पर चर्चा करना प्रोग्रामिंग भाषाओं के बीच एक विश्वसनीय विभेदक के रूप में काम नहीं कर सकता है, क्योंकि वे अधिकांश आधुनिक भाषाओं में प्रचलित और विविध हैं।
चेकिंग टाइप करें
टाइप चेकिंग एक ऐसी सुविधा है जो सख्ती से मान्य करती है डेटा प्रकार, पूर्वनिर्धारित प्रकारों का कड़ाई से पालन सुनिश्चित करना। प्रोग्रामिंग भाषाओं में, संकलन या रनटाइम के दौरान एक मजबूत प्रकार की जाँच तंत्र का उपयोग किया जाता है। यह प्रक्रिया प्रकार की त्रुटियों को कम करती है, कोड विश्वसनीयता में महत्वपूर्ण योगदान देती है और प्रोग्राम के निष्पादन के दौरान डेटा स्थिरता बनाए रखती है।
स्थैतिक और गतिशील प्रकार की हैंडलिंग
टाइप सुरक्षा को बनाए रखने के लिए प्रोग्रामिंग भाषाओं द्वारा नियोजित विभिन्न तंत्रों में से, टाइप चेकिंग वह है जो प्रत्येक भाषा को अलग करती है। टाइप चेकिंग के भीतर दो अलग-अलग दृष्टिकोण हैं: स्थिर रूप से टाइप की गई और गतिशील रूप से टाइप की गई भाषाएँ।
स्टेटिकली टाइप की गई भाषाएं कोड के संकलन चरण के दौरान टाइप-चेकिंग करती हैं। इसका मतलब यह है कि, शुरू से ही, वे परिवर्तनीय प्रकारों के संबंध में सख्त नियम स्थापित और लागू करते हैं। यह अग्रिम जांच यह सुनिश्चित करती है कि चर अपने घोषित प्रकारों का पालन करें, जिससे कार्यक्रम के निष्पादन के लिए एक मजबूत आधार तैयार हो सके।
दूसरी ओर, गतिशील रूप से टाइप की गई भाषाएं रनटाइम तक प्रकार की जांच को स्थगित करके एक अलग दृष्टिकोण अपनाती हैं। यह डेवलपर्स को कार्यान्वयन चरण के दौरान परिवर्तनीय प्रकारों को संभालने में अधिक लचीलापन प्रदान करता है। यह परिवर्तनशील प्रकारों में ऑन-द-फ़्लाई परिवर्तन की अनुमति देता है, जिससे प्रोग्रामिंग अनुभव अधिक तरल हो जाता है। हालाँकि, यह लचीलापन एक ट्रेड-ऑफ के साथ आता है: जब रनटाइम के दौरान गतिशील रूप से टाइप की गई भाषा में एक प्रकार की त्रुटि होती है, तो एक त्रुटि जो प्रोग्राम चलने से पहले स्थिर रूप से टाइप की गई भाषा में पकड़ी गई हो, एक अपवाद (a क्रैश, उपयोगकर्ता को एक त्रुटि प्रदर्शित कर रहा है।
यह समझना कि प्रोग्रामिंग भाषाएं प्रकारों को कैसे संभालती हैं, डेवलपर्स को उन भाषाओं को चुनने का अधिकार देती है जो उनके प्रोजेक्ट के लिए सबसे उपयुक्त हैं आवश्यकताएँ। यह ज्ञान कोड गुणवत्ता को बढ़ाता है और मजबूत, अधिक अनुकूलित सॉफ़्टवेयर समाधान बनाने में योगदान देता है।
टाइप हैंडलिंग सारांश तालिका
सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में से कई के त्वरित-नज़र के सारांश के लिए इस तालिका का उपयोग करें और टाइप-हैंडलिंग विधियां उन्हें कैसे अलग करती हैं:
चीज़ों को लपेटना
भाषा प्रकार प्रबंधन पर अपनी चर्चा को समाप्त करते हुए, हमने मजबूत बनाम कमजोर टाइप वाली भाषाओं के बारे में बहस का पता लगाया, प्रकार सुरक्षा के महत्व पर जोर दिया, और स्थैतिक और गतिशील प्रकार प्रबंधन के बीच अंतर पर प्रकाश डाला। यह चर्चा प्रोग्रामिंग भाषाओं में पाई जाने वाली विविधता पर प्रकाश डालती है। आगे देखते हुए, हमारा अगला अध्याय विभिन्न करियर पथ विशिष्ट भाषाओं के साथ संरेखित। उसके बाद, हम 2024 में प्रवेश करते समय सॉफ़्टवेयर भाषाओं को प्रभावित करने वाले उभरते रुझानों पर करीब से नज़र डालेंगे, और सॉफ़्टवेयर प्रोग्रामिंग भाषाओं पर हमारी व्यापक श्रृंखला का समापन करेंगे।
वेब संसाधन
भौतिक संसाधन
अस्वीकरण: हम नीचे दिए गए लिंक में योग्य खरीदारी से कमाई कर सकते हैं। इन लिंक्स पर क्लिक करने से इस ब्लॉगिंग संसाधन का समर्थन करने में मदद मिलती है, लेकिन इससे आपके लिए कीमत नहीं बढ़ती है। |
इस पोस्ट पर सभी टिप्पणियाँ और चर्चाएँ हमारी स्वीकार्य उपयोग नीति.
コメント