सब कुछ एक डीएसएल है ...
कोडांतरक: MOV R1 से R2
कंपाइलर: असाइनमेंट स्टेटमेंट - A = A + 1, कंडीशंस - IF (TRUE) ..., ब्रांच - RETURN
HTML: ... नेस्टेड स्ट्रक्चर
टीसीपी / आईपी का वर्णन करें: पते
पीडीएफ: कागज पर पाठ / छवि प्लेसमेंट का
वर्णन फ़ॉन्ट्स: वर्णों का वर्णन करें
एक विशिष्ट प्रक्रिया का वर्णन करने के लिए हम जो भी भाषा का उपयोग करते हैं वह डीएसएल है। दुर्भाग्य से हमारी सबसे बुनियादी प्रक्रियाओं का वर्णन करने के लिए डोमेन विशिष्ट भाषाओं की कमी है, इसलिए हम उन कुछ भाषाओं का उपयोग करते हैं जो हमें हमारे द्वारा की जाने वाली हर चीज का वर्णन करने के लिए होती हैं। "मेरी वेब साइट में सभी HTML फ़ाइलों को ज़िप करें" को पूरा करने के लिए 3 या 4 विभिन्न भाषाओं की 300 लाइनों की आवश्यकता होती है।
डीएसएल का निर्माण करने के लिए एक प्रक्रिया का वर्णन करने के लिए आवश्यक वर्णों की न्यूनतम संख्या निर्धारित करें जिसे आप याद रख सकते हैं और प्रलेखन की आवश्यकता नहीं है। याद रखें कि गति और उपयोग में आसानी प्राथमिक डिजाइन मानदंड हैं। पार्सिंग इतना तेज़ है कि आपके द्वारा उपयोग किया जाने वाला कोई भी वाक्यविन्यास ठीक है, मैं ज्यादातर मामलों में मेरे वाक्यविन्यास के रूप में प्राकृतिक भाषा पसंद करता हूं, "महीने के पहले कर्मचारी का भुगतान करें", लेकिन डोमेन विशिष्ट बस यही है, डोमेन विशिष्ट, आप वाक्यविन्यास को सर्वश्रेष्ठ निर्धारित करते हैं समस्या को ठीक करता है।
मैं अन्य समाधानों का उपयोग करने से दूर रहूंगा जो सुविधाजनक हो सकते हैं, लेकिन HTML जैसी समस्या को फिट नहीं करते हैं जिसका उपयोग डेटा (एक्सएमएल) को परिभाषित करने के लिए किया गया था। CSV बहुत उपयोगी है, यह ज्यादातर समस्याओं के लिए उपयुक्त है। JSON उपयोग भाग की आसानी से फिट नहीं होता है, यह ओवरकिल है जो अनावश्यक जटिलताओं को जोड़ता है अधिकांश समस्या के लिए सीएसवी काम करता था। हम DSL के लिए बहुत उपयोग करते हैं, यह छोटी समस्याओं का वर्णन करने के लिए बहुत अच्छा काम करता है, 65K से 1M पंक्तियों के तहत, जैसे कि पेड़ की संरचनाएं या मेनू, कॉलम A स्तर है, अन्य कॉलम प्रतीक, रंग, लेबल और ऐसे हैं (EXCEL एक है) संपादन योग्य CSV)।
मैंने पाया कि HTML वास्तव में पेज लेआउट की समस्या को हल नहीं करता था, इसलिए मैंने इससे छुटकारा पा लिया और एक डीएसएल को परिभाषित किया जो फिट बैठता है। मैंने पृष्ठ पर 6 क्षेत्र, हेडर, बॉडी, फोटर, लेफ्ट / राइट मार्जिन और लेफ्ट / राइट फुल मार्जिंस परिभाषित किए। मैं तब पृष्ठ जनरेटर को विशिष्ट कोशिकाओं में एक TITLE BAR, STATUS BAR, MENUS, TABLE, FORMS, ..., जोड़ सकता था। इनमें से प्रत्येक सेल को तब किसी भी गहराई तक पंक्तियों और स्तंभों में विभाजित किया जा सकता है। पेज लेआउट किसी भी शैली के लिए सेकंड लेता है।
बॉडी में मेरे कर्मचारी की एक तालिका शामिल है
हेडर में कोलिन्स सॉफ्टवेयर में लॉगिन के साथ एक शीर्षक बार कैप्शन 'हैलो वर्ल्ड' है।
एक मेनू डीएसएल पृष्ठ लेआउट डीएसएल फिट नहीं होता है, इसलिए मैंने मेनू के लिए एक अद्वितीय डीएसएल बनाया।
संसाधन मेरा मुख्य मेनू
* परिभाषित: मेनू, मीटर, स्तर, लेबल, चिह्न, कार्रवाई;
मीटर, 0, फ़ाइल;
मी, 1, ओपन, ओपन.गिफ, डायलॉग ओपन फाइल;
प्रत्येक समस्या अद्वितीय है, कंप्यूटर किसी भी प्रारूप का उपयोग कर सकता है, यह मानव है जिसे डीएसएल के लिए डिज़ाइन किया गया है, इसलिए इसे मनुष्यों द्वारा समझा जा सकता है, कुछ वे टाइप कर सकते हैं और भाषा को वास्तविक शब्दों से बाहर कर सकते हैं; क्योंकि यह वास्तविक लोग, स्थान और चीजें हैं जिनका हम वर्णन कर रहे हैं।