में संकलन समय कोड जनरेशन मैं वर्तमान में डी सीख रहा हूं, और जिन चीज़ों के बारे में मैंने सोचा है उनमें से एक यह है कि क्या डी के पास जेवीएम भाषाओं की कोड जनरेशन क्षमताओं को डुप्लिकेट करने का एक तरीका है।डी
यहां एक परिदृश्य है: मेरे पास एक ऑब्जेक्ट है, और मैं उस ऑब्जेक्ट के आधार पर एक स्ट्रिंग जेनरेट करना चाहता हूं जो इसका नाम और उसके सभी फ़ील्ड देता है। जावा/स्कैला में, मैं केवल प्रतिबिंब का उपयोग कर सकता हूं, लेकिन मान लीजिए गति एक मुद्दा है। मैं एक बाइटकोड पीढ़ी लाइब्रेरी का उपयोग गतिशील रूप से उत्पन्न करने और संकलित करने के लिए कर सकता हूं जो प्रतिबिंब के बिना करता है। कार्यान्वयन ऑब्जेक्ट के फ़ील्ड के माध्यम से पुनरावृत्ति करने और रिकर्सन के माध्यम से इसका नाम प्राप्त करने के लिए टूट जाएगा, और उस जानकारी का उपयोग गतिशील रूप से जावा (या बाइटकोड) उत्पन्न करने के लिए करेगा जो फ़ील्ड को सीधे एक्सेस करता है।
यदि आपको वह परिदृश्य पसंद नहीं है क्योंकि यह कमजोर और/या अवास्तविक है, तो दूसरा यथार्थवादी हो सकता है, ऑब्जेक्ट क्रमबद्धता अनुकूलित किया गया है।
मैंने उदाहरणों को देखा है जहां डी संकलन समय मूल्यांकन और/या टेम्पलेट मेटाप्रोग्रामिंग का उपयोग संकलन समय और अन्य रिकर्सिव एल्गोरिदम पर फाइबोनैकी अनुक्रम को पूर्ववत करने जैसी चीजों के लिए किया जाता है, लेकिन इस तरह की चीजों को सिर्फ भाषा के साथ करने का एक तरीका है और एक कंपाइलर, या आपको एक अलग कोड जनरेटर विकसित करने और इस तरह की कार्यक्षमता प्राप्त करने के लिए संकलक से पहले इसे चलाने की आवश्यकता होगी?
कृपया, क्या आप इस [पोस्ट] (http://stackoverflow.com/questions/11314596/listing-a-classs-methods-trough-mixin) पर विचार कर सकते हैं? – menjaraz