सबसे लंबे समय तक मैं एक प्रोग्रामिंग भाषा तैयार करना चाहता था जिसने दक्षता (और सुरक्षा, आसानी से उपयोग, इत्यादि) के साथ एक्स्टेंसिबिलिटी का विवाह किया। मैंने हाल ही में डी को फिर से खोज लिया और मैं सोच रहा हूं कि डी 2.0 काफी ज्यादा भाषा है जिसे मैं चाहता था खुद को किसी कार्य के योग्य बनाना। जो मुझे सबसे ज्यादा पसंद है वह मेटाप्रोग्रामिंग की क्षमता है; सिद्धांत रूप में, डी traits सिस्टम संकलन समय पर निम्न सुविधाओं को सक्षम कर सकता है?क्या डी इन सुविधाओं के लिए पर्याप्त शक्तिशाली है?
रन-समय प्रतिबिंब: संकलन समय प्रतिबिंब सुविधाएँ एक रन-टाइम प्रतिबिंब प्रणाली एक ला जावा/नेट का निर्माण करने के लिए पर्याप्त हैं?
कोड रूपांतरण: मेटाप्रोग्राम का उपयोग करके, सी #/सी ++/आदि बनाएं। हर बार जब आप इसे संकलित करते हैं तो आपके डी प्रोग्राम के संस्करण (बोनस पॉइंट यदि दस्तावेज़ टिप्पणियां प्रचारित की जा सकती हैं)।
लक्षण। मेरा मतलब यह नहीं है कि metaprogramming traits डी में बनाया गया है, मेरा मतलब है object-oriented traits for class composition। एक डी प्रोग्राम लिखने के लिए लक्षणों का एक सेट इंगित करेगा, और एक मेटाप्रोग्राम उन्हें लिख देगा।
यूनिट अनुमान इंजन: वैकल्पिक रूप से इकाइयों को इंगित करने के लिए कुछ नोटेशन दिए गए, उदा।
unit(value)
, क्या डी मेटाप्रोग्राम निम्न कोड की जांच कर सकता है, सही इकाइयों का अनुमान लगा सकता है, और अंतिम पंक्ति पर एक त्रुटि संदेश जारी कर सकता है? (मैं boo के लिए ऐसी बात लिखा था तो मैं यह सामान्य, कार्यक्रम चौड़ा में संभव है आपको विश्वास दिलाता कर सकते हैं):auto mass = kg(2.0); auto accel = 1.0; // units are strictly optional auto force = mass*accel; accel += metresPerSecondSquared(9.81); // units of 'force' and 'accel' are now known force += pounds(3.0); // unit mismatch detected
मैं कनवर्टर सुझाव देने के लिए विधानसभा भाषा :) सहित सभी सुविधाओं का समर्थन करना चाहिए मतलब नहीं था, लेकिन अभी यह विचार है कि डी कोड गहरा * प्रयास * एक रूपांतरण करने के लिए पर्याप्त का निरीक्षण कर सकते हैं। – Qwertie
इस तरह कोई व्यक्ति डी, सी ++ और सी # में एक प्रोग्राम को डी के एक निश्चित उप-समूह में सीमित करके एक प्रोग्राम लिख सकता है। स्वाभाविक रूप से आपको उदा। लक्ष्य भाषा की सीमाओं के अनुसार, लैम्ब्डा टेम्पलेट तर्कों को रनटाइम तर्कों में परिवर्तित करें, या विभिन्न तर्कों के साथ ऑटो-प्रतिकृति टेम्पलेट्स को परिवर्तित करें। ऐसा रूपांतरण उपकरण कुछ पुस्तकालयों, विशेष रूप से एल्गोरिदम और विदेशी डेटा संरचनाओं को लिखने के लिए डी को अधिक आकर्षक बना सकता है, हालांकि मुझे लगता है कि इसे मेटाप्रोग्रामिंग के साथ आवश्यक रूप से पूरा करने की आवश्यकता नहीं है। – Qwertie
यह संभव है कि मेरा विश्वास है, लेकिन इसके लिए संकलन समय पर भाषा अनुवादक की आवश्यकता होगी ... यह एक विशाल परियोजना होगी ... – DejanLekic