यह प्रश्न this question के जवाब में एक चर्चा (अब हटा दिया गया है) पर आधारित है। यह वास्तविक प्रोग्रामिंग अर्थशास्त्र की तुलना में शब्दावली के बारे में अधिक है।सामान्य तत्कालता कब होती है (यानी, शब्द का क्या अर्थ है)?
सामान्य "तत्काल" क्या है? क्या यह संकलन समय या रन टाइम पर होता है?
मैं एडा 2012 मानक के latest draft का उल्लेख करूंगा।
शब्द का अर्थ generic_instantiation स्पष्ट है; यह एक वाक्य रचनात्मक निर्माण है,
package Inst is new Generic_Package(This => That);
मेरा प्रश्न "तत्काल" क्रिया के बारे में है।
मैंने हमेशा "तत्काल" के बारे में सोचा है जो संकलन समय पर होता है। यह एक सामान्य टेम्पलेट का विस्तार है, और ऐसा तब होता है जब संकलक एक संकलन इकाई में generic_instantiation का सामना करता है।
लेकिन अन्य स्रोत कम से कम वैकल्पिक रूप से, रनटाइम पर "तत्काल" होने का संदर्भ लेते हैं।
This Wikipedia article का कहना है:
करने के लिए इन्स्तांत एक सामान्य इकाई, प्रोग्रामर प्रत्येक औपचारिक के लिए वास्तविक मानकों से गुजरता है। सामान्य उदाहरण तब किसी भी अन्य इकाई की तरह व्यवहार करता है। रन-टाइम पर जेनेरिक इकाइयों को तुरंत चालू करना संभव है, उदाहरण के लिए एक लूप के अंदर।
जो ऐसा लगता है कि तत्कालता या तो संकलन समय या रन टाइम पर हो सकती है। मुझे लगता है कि यह जेनेरिक_इंस्टेंटिएशन का संदर्भ दे रहा है, जो रन टाइम पर होता है - लेकिन फिर, सभी विस्तार रन टाइम पर होते हैं, हां?
मुझे एडीए आरएम से इसका एक निश्चित उत्तर प्राप्त करने में आश्चर्यजनक रूप से मुश्किल लग गई। "तत्काल" या "तत्काल" के लिए कोई शब्दावली प्रविष्टि (अनुलग्नक एन) नहीं है।
एक सामान्य शरीर के विस्तार करने के अलावा कोई अन्य प्रभाव पड़ता है की स्थापना है कि जेनेरिक:
निकटतम मैं मिल सकता है 12.2 (सामान्य निकाय) पैरा 2 में इस बयान था, "गतिशील शब्दार्थ" के अंतर्गततब से ElPER_Check को विफल किए बिना इकाई पर तत्काल हो सकती है।
जो परोक्ष रूप से संकेत मिलता है कि इन्स्टेन्शियशन एक रन-टाइम घटना है।
क्या क्रिया "तत्काल" ठीक से एक संकलन-समय घटना (एक सामान्य टेम्पलेट का विस्तार) का संदर्भ देता है? रन-टाइम ईवेंट (जेनेरिक_इंस्टेंटिएशन का विस्तार) करने के लिए? यदि उत्तरार्द्ध, हम पूर्व को क्या कहते हैं? क्या एडीए आरएम स्पष्ट है क्योंकि इसे इस बिंदु पर होना चाहिए?
मुझे लगता है, बस अंग्रेजी पर आधारित, तत्कालता का मतलब एक उदाहरण का निर्माण है, जो निश्चित रूप से रन-टाइम की तरह लगता है। –
@ डोनरोबी: आह, लेकिन "उदाहरण" क्या है? यदि कोई उदाहरण * कोड * है जो टेम्पलेट का विस्तार करने के परिणामस्वरूप होता है, तो यह संकलन-समय है। –
@ डोनरोबी: एक ढीला सादृश्य: सी मैक्रो विस्तार निश्चित रूप से संकलन समय पर होता है, रन नहीं समय। आडा जेनेरिक स्पष्ट रूप से एक ही बात नहीं हैं, लेकिन कुछ सिद्धांत लागू होते हैं। –