स्थैतिक और गतिशील टाइपिंग
स्थैतिक टाइपिंग प्रोग्राम चलने से पहले प्रकारों की जाँच करती है, जबकि गतिशील टाइपिंग उन्हें निष्पादन के दौरान जाँचती है; क्रमिक टाइपिंग एक ही भाषा के भीतर दोनों को संयोजित करने का प्रयास करती है।
Definition
स्थैतिक टाइपिंग संकलन समय पर प्रकार की बाधाओं को सत्यापित करती है ताकि निष्पादन से पहले अच्छी तरह से टाइप किए गए प्रोग्राम स्वीकार किए जा सकें; गतिशील टाइपिंग रनटाइम तक प्रकार की जाँच को स्थगित करती है, जब अनुपयुक्त प्रकार के मानों पर संचालन लागू किया जाता है तो त्रुटियाँ उत्पन्न करती है।
Scope
यह विषय टाइप जाँच कब और कैसे होती है, इसके स्पेक्ट्रम को शामिल करता है: स्थैतिक जाँच जो संकलन समय पर गलत-टाइप किए गए प्रोग्रामों को अस्वीकार करती है, गतिशील जाँच जो रनटाइम पर टाइप त्रुटियों का पता लगाती है, और क्रमिक या वैकल्पिक टाइपिंग जो दोनों को सह-अस्तित्व में रहने देती है। यह प्रत्येक के गारंटी, लचीलेपन और प्रदर्शन निहितार्थों के साथ-साथ टाइप-जाँच अनुशासन की सुदृढ़ता को संबोधित करता है।
Core questions
- त्रुटियों के कौन से वर्ग हैं जिन्हें स्थैतिक जाँच रोकती है और गतिशील जाँच पहले से नहीं रोक सकती है?
- गतिशील टाइपिंग क्या लचीलापन प्रदान करती है, और किस कीमत पर?
- क्रमिक टाइपिंग टाइप किए गए और अनटाइप किए गए कोड को ध्वनि रूप से कैसे मिला सकती है?
- स्थैतिक प्रकार के अनुशासन की सुदृढ़ता कैसे स्थापित की जाती है?
Key theories
- क्रमिक टाइपिंग
- सीक और ताहा ने एक प्रकार प्रणाली को परिभाषित किया जो प्रोग्राम के कुछ हिस्सों को स्थैतिक रूप से टाइप करने और दूसरों को गतिशील रूप से टाइप करने की अनुमति देती है, जिसमें सीमा पर सुरक्षित बातचीत को नियंत्रित करने वाला एक संगति संबंध होता है।
- स्थैतिक प्रकार की सुदृढ़ता
- राइट और फेलेसेन की प्रगति-और-संरक्षण विधि दर्शाती है कि एक सुदृढ़ स्थैतिक प्रकार प्रणाली यह गारंटी देती है कि अच्छी तरह से टाइप किए गए प्रोग्राम कभी भी अटकी हुई अवस्थाओं तक नहीं पहुँचते हैं, जो स्थैतिक जाँच की सुरक्षा को औपचारिक रूप देती है।
Clinical relevance
स्थैतिक-बनाम-गतिशील विकल्प डेवलपर वर्कफ़्लो, टूलिंग और विश्वसनीयता को आकार देता है। क्रमिक और वैकल्पिक टाइपिंग सिस्टम, जैसे कि गतिशील भाषाओं पर स्तरित किए गए, टीमों को बड़े मौजूदा कोडबेस में वृद्धिशील रूप से स्थैतिक गारंटी जोड़ने की सुविधा देते हैं।
History
प्रारंभिक भाषाएँ स्थैतिक रूप से टाइप की गई (अल्गोल, पास्कल, एमएल) और गतिशील रूप से टाइप की गई (लिस्प, स्मॉलटॉक) वंशों में विभाजित हुईं। जैसे-जैसे गतिशील भाषाएँ उत्पादकता के लिए लोकप्रिय हुईं, शोधकर्ताओं ने दृष्टिकोणों को समेटने की कोशिश की; सीक और ताहा की 2006 की क्रमिक टाइपिंग और वैकल्पिक प्रकारों पर समकालीन कार्य ने गतिशील भाषाओं के शीर्ष पर निर्मित व्यापक रूप से उपयोग किए जाने वाले क्रमिक रूप से टाइप किए गए सिस्टम को जन्म दिया।
Debates
- क्रमिक टाइपिंग की लागत और सुदृढ़ता
- शोधकर्ता इस बात पर बहस करते हैं कि क्या सुदृढ़ क्रमिक टाइपिंग टाइप किए गए/अनटाइप किए गए सीमाओं पर अत्यधिक रनटाइम जाँच लागत से बच सकती है, और क्या असुदृढ़ 'वैकल्पिक' टाइपिंग एक बेहतर व्यावहारिक व्यापार-बंद है।
Key figures
- Benjamin Pierce
- Jeremy Siek
- Walid Taha
- Matthias Felleisen
Related topics
Seminal works
- pierce2002
- siek2006
- wright1994
Frequently asked questions
- क्या स्थैतिक टाइपिंग हमेशा गतिशील टाइपिंग से बेहतर होती है?
- कोई भी सार्वभौमिक रूप से बेहतर नहीं है; स्थैतिक टाइपिंग अधिक त्रुटियों को जल्दी पकड़ती है और टूलिंग में सहायता करती है, जबकि गतिशील टाइपिंग लचीलापन और तेज़ प्रोटोटाइपिंग प्रदान करती है, इसलिए सही विकल्प परियोजना की विश्वसनीयता और चपलता की जरूरतों पर निर्भर करता है।
- क्रमिक टाइपिंग क्या है?
- क्रमिक टाइपिंग एक ही प्रोग्राम को स्थैतिक और गतिशील रूप से टाइप किए गए भागों को मिलाने देती है, सीमाओं पर रनटाइम जाँच सम्मिलित करती है ताकि टाइप किया गया कोड अपनी गारंटी बनाए रखे जबकि अनटाइप किया गया कोड लचीला बना रहे।