सबसे पहले मैं Kernighan और पाईक द्वारा पढ़ने अध्याय 9 The Practice of Programming की (नोटेशन) की सिफारिश करेंगे।
जब आप किया है कि, यहाँ वापस कैसे को हल करने के समस्याओं के लिए विशिष्ट डिजाइन करने के लिए कि अध्याय में अवधारणाओं को मैप करने पर विशिष्ट प्रश्न के साथ आते हैं।
बुनियादी पैटर्न एक दुभाषिया है कि एक 'कमांड' तर्क पारित हो जाता है, और संभवतः एक 'पर्यावरण' तर्क लिखना है और आदेश निष्पादित करता है (वातावरण में)। उसके बाद आपके पास एक पार्सर लिखने का विकल्प होता है, जो 'स्क्रिप्ट' स्ट्रिंग लेता है और उसे वैध 'कमांड' ऑब्जेक्ट (यानी बाहरी-डीएसएल) में परिवर्तित करता है; या आप एक लाइब्रेरी प्रदान करते हैं जो उपयोगकर्ताओं को 'कमांड' ऑब्जेक्ट को उसी भाषा में स्पष्ट रूप से बनाने में मदद करता है जो आप उपयोग कर रहे हैं (आंतरिक-डीएसएल)।
केर्निअन और पाइक दोनों एक छोटे से काम को दिखाते हैं कि कितना तुच्छ और कितना जटिल दुभाषिया हो सकता है। यदि आप अधिक गहराई चाहते हैं, तो मैं डैनियल फ्राइडमैन एट अल द्वारा The Essentials of Programming Languages पढ़ने का सुझाव दूंगा। जो अध्याय प्रति कम से कम एक अलग दुभाषिया बनाता है, और यह दर्शाता है कि चर, कार्य, स्कोप, ऑब्जेक्ट्स, कक्षाएं, स्थैतिक-टाइपिंग और निरंतरता जैसी सुविधाओं को कैसे कार्यान्वित किया जाए।
हालांकि मैं एक छोटी सी डीएसएल पहली बार में अपने हाथ की कोशिश कर रहा सुझाव है, अन्यथा यह सब सिर्फ सिद्धांत-एक किताब भी बहुत कुछ दिलचस्प जब यह प्रासंगिक नहीं है और अपने पिछले अनुभव से व्यावहारिक किया जाता है है।
गंभीर सुझाव: ग्रोवी, स्कैला या क्लोजर का उपयोग करके इसे कार्यान्वित करें। – Mike
यह पूरी तरह से निर्भर करता है कि आप डीएसएल को कितना जटिल बनाना चाहते हैं। इसके लिए जावा का उपयोग न करने के लिए – NawaMan
+1। अगर कुछ भी है, तो मैं रूबी (या जेआरबी) का उपयोग करूंगा। – cletus