मैनिफ़ेस्ट टाइपिंग
Type systems |
---|
General concepts |
Major categories |
|
Minor categories |
कंप्यूटर विज्ञान में, मेनिफेस्ट टाइपिंग सॉफ़्टवेयर प्रोग्रामर द्वारा घोषित किए जा रहे प्रत्येक चर के प्रकार की स्पष्ट पहचान है। उदाहरण के लिए: यदि वेरिएबल X पूर्णांकों को संग्रहीत करने जा रहा है तो उसके प्रकार को पूर्णांक के रूप में घोषित किया जाना चाहिए। मेनिफेस्ट टाइपिंग शब्द का उपयोग अक्सर स्थैतिक चर , संकलन का समय |ऑब्जेक्ट की कंपाइल-टाइम प्रकार की सदस्यता और उसके रन टाइम (प्रोग्राम जीवनचक्र चरण)|रन-टाइम प्रकार की पहचान के बीच अंतर का वर्णन करने के लिए अव्यक्त टाइपिंग शब्द के साथ किया जाता है।
इसके विपरीत, कुछ प्रोग्रामिंग भाषाएं अंतर्निहित टाइपिंग (उर्फ प्रकार का अनुमान) का उपयोग करती हैं, जहां संकलन-समय पर संदर्भ से प्रकार का अनुमान लगाया जाता है या टाइप_सिस्टम # डायनामिक_टाइपिंग के लिए अनुमति दी जाती है, जिसमें चर को अभी घोषित किया जाता है और रनटाइम पर किसी भी प्रकार का मान निर्दिष्ट किया जा सकता है।
उदाहरण
C (प्रोग्रामिंग भाषा) में लिखे गए निम्नलिखित उदाहरण पर विचार करें:
#include <stdio.h>
int main(void) {
char s[] = "Test String";
float x = 0.0f;
int y = 0;
printf("Hello, World!\n");
return 0;
}
वेरिएबल्स s, x, और y को क्रमशः एक कैरेक्टर ऐरे, फ़्लोटिंग पॉइंट नंबर और एक पूर्णांक के रूप में घोषित किया गया था। टाइप सिस्टम, संकलन-समय पर, एस और एक्स को जोड़ने की कोशिश जैसी भ्रांतियों को खारिज कर देता है। C23 (C मानक संशोधन) के बाद से, टाइप अनुमान का उपयोग C में कीवर्ड के साथ किया जा सकता है auto
.[1] उस सुविधा का उपयोग करते हुए, पिछला उदाहरण बन सकता है:
#include <stdio.h>
int main(void) {
char s[] = "Test String";
// auto s = "Test String"; is instead equivalent to char* s = "Test String";
auto x = 0.0f;
auto y = 0;
printf("Hello, World!\n");
return 0;
}
दूसरे उदाहरण के समान, मानक एमएल में, प्रकारों को स्पष्ट रूप से घोषित करने की आवश्यकता नहीं है। इसके बजाय, प्रकार निर्दिष्ट अभिव्यक्ति के प्रकार से निर्धारित होता है।
let val s = "Test String"
val x = 0.0
val y = 0
in print "Hello, World!\n"
end
इस प्रोग्राम में कोई प्रकट प्रकार नहीं हैं, लेकिन कंपाइलर अभी भी प्रकारों का अनुमान लगाता है string
, real
और int
उनके लिए, और अभिव्यक्ति को अस्वीकार कर देंगे s+x
संकलन-समय त्रुटि के रूप में।
संदर्भ
- ↑ "WG14-N3007 : Type inference for object definitions". open-std.org. 2022-06-10. Archived from the original on December 24, 2022.