मैं केवल एक बार एक निश्चित एल्गोरिदम (मेरे कोड का ग्राफिक्स प्रतिपादन उप-मॉड्यूल) लिखने और बनाए रखने का एक तरीका ढूंढ रहा हूं। मुझे सी ++, PHP और जावास्क्रिप्ट में एल्गोरिदम चाहिए। सैद्धांतिक रूप से मैं इसे सी ++ में लिख सकता हूं और इसे एक PHP एक्सटेंशन में लपेट सकता हूं; लेकिन इसमें स्वयं के कई मुद्दे हैं और जावास्क्रिप्ट लिंक को हल नहीं करते हैं।कई आउटपुट भाषाओं में मेटा प्रोग्रामिंग
जो मैं खोज रहा हूं, मुझे लगता है, एक ऐसा उपकरण है जो एक भाषा से बदलता है (इससे कोई फर्क नहीं पड़ता) तीन (या दो, यदि स्रोत भाषा तीन में से एक है) आउटपुट भाषाएं I मैं लक्ष्यीकरण कर रहा हूँ। मुझे मेटाएल (http://www.meta-language.net/) मिला है जो मुझे लगता है कि वह करना चाहता है लेकिन मृत दिखता है (2007 से कोई अपडेट नहीं) और केवल मुझे आवश्यक तीन भाषाओं में से एक को लक्षित करता है। इसे काफी लचीला होना चाहिए और मुझे परिणामों को अपडेट करने की अनुमति दें - उदाहरण के लिए, मैं अपने सी ++ और PHP प्रतिपादन में काहिरा का उपयोग करता हूं, और जावास्क्रिप्ट पक्ष पर एचटीएमएल कैनवास। तो मुझे कुछ प्रभावों के लिए एपीआई में कस्टमाइज़ करने की जरूरत है।
वैकल्पिक रूप से, मैं एक PHP पार्सर और लेक्सर के लिए बसूंगा जो मुझे एक वैकल्पिक बैकएंड के रूप में सी ++ और जावास्क्रिप्ट के जेनरेटर लिखने के लिए पर्याप्त जानकारी के साथ एक एएसटी देगा।
कोई भी विचार? धन्यवाद।
आपके प्रश्न ने मुझे पुराने उद्धरण की याद दिला दी: _Some लोग, जब किसी समस्या का सामना करते हैं, तो सोचें "मैं पता है, मैं नियमित अभिव्यक्तियों का उपयोग करूंगा। " अब उनके पास दो समस्याएं हैं ._ मैं रखरखाव को केंद्रीकृत करने की आपकी इच्छा को समझता हूं, लेकिन ऐसा लगता है कि आप कुछ हद तक परेशान करने वाली-लेकिन-उचित समस्या ले रहे हैं और इसे एक बहुत ही जटिल समस्या में बदल रहे हैं। (मैं स्वचालित निर्माण, अनुवाद इंजन के साथ समस्याओं और डीबगिंग नरक के बारे में सोच रहा हूं, जो आप दर्ज करने वाले हैं) गरीब व्यक्ति के बारे में सोचें जो आपको इस समाधान को बनाए रखने के बाद बनाए रखना है .. – NightDweller
यदि आप कोड की कुछ हज़ार लाइनों के बारे में बात कर रहे हैं, आप एपीआई को ध्यान से डिजाइन करने और बस उन्हें रिकोड करने के लिए बेहतर होंगे। सभी अजीब चीजों के लिए स्वचालित कोड जनरेशन एक लंगेज में मिलता है (उदाहरण के लिए, सी ++: कक्षाओं, एकाधिक-विरासत, नामस्थान, पृथक घोषणा/परिभाषा, मैक्रोज़, टेम्पलेट्स, अधिभार, ...) एक बड़ा काम है और नहीं कुछ हज़ार लाइनों के प्रयास के लायक है। यदि आप 100 के एसएलओसी उत्पन्न करना चाहते हैं तो यह प्रयास के लायक होगा, या अगर आपने मनमान तरीके से कोड टुकड़े बनाये हैं। लेकिन एक निश्चित एल्गोरिदम की 3 प्रतियां? परेशानी के लायक मत सोचो। –
मैं इसे लिखने के लिए खुद को एक भाषा के बहुत छोटे सबसेट तक सीमित कर सकता हूं। मुझे स्पष्ट रूप से कई भाषाओं में सी ++ की सभी बारीकियों का अनुवाद करने की आवश्यकता नहीं है। प्रतिपादन 90% 'पिक्सेल, आयताकार या सर्कल का गणना स्थान है, इसके रंग की गणना करें, कॉल ड्राइंग एपीआई फ़ंक्शन'। यह सामान्य उद्देश्य नहीं होना चाहिए। वैसे भी ऐसा लगता है कि हेक्से मुझे जो चाहिए वह करेगा। – Roel