एक डोमेन स्पेसिफिक लैंग्वेज (DSL) एक छोटी भाषा होती है जो किसी खास क्षेत्र के लिए बनाई जाती है। चूँकि DSL किसी खास क्षेत्र के लिए बनाई जाती है, यह लिखने वाले को यह घोषित करने का मौका देती है कि उसे क्या चाहिए, न कि कैसे। इससे उत्पादकता और समझ पर बड़ा असर पड़ सकता है।
जटिल कस्टमाइज़ेशन और कॉन्फिगरेशन एक ऐसा क्षेत्र है जहाँ इनका इस्तेमाल होता है।
उदाहरण के लिए, DOT भाषा की मदद से आप किसी ग्राफ का टेक्स्ट में विवरण लिख सकते हैं। फिर Graphviz के किसी टूल (जैसे dot) की मदद से उस विवरण को एक तस्वीर में बदल दिया जाता है।
एक साधारण ग्राफ ऐसा दिखता है:
graph {
graph [bgcolor="yellow"]
a [color="red"]
b [color="blue"]
a -- b [color="green"]
}
इसे example.dot फाइल में रखकर dot example.dot -T png -o example.png चलाने पर एक इमेज example.png बनती है, जिसमें पीले बैकग्राउंड पर हरी रेखा से जुड़े लाल और नीले वृत्त होते हैं।
Graphviz की dot भाषा जैसी एक डोमेन स्पेसिफिक लैंग्वेज लिखिए।
हमारी DSL Graphviz की dot भाषा जैसी है, क्योंकि हमारी DSL का इस्तेमाल भी ग्राफ डेटा स्ट्रक्चर बनाने के लिए होगा। लेकिन DOT भाषा से अलग, हमारी DSL एक इंटरनल DSL होगी, जिसका इस्तेमाल सिर्फ हमारी भाषा में ही होगा।
इंटरनल और एक्सटर्नल DSL के अंतर के बारे में और जानिए।
इस अभ्यास में आपको DOT भाषा जैसी एक DSL के लिए सिंटैक्स बनाना होगा।
इस काम के लिए आपको नोटेशन या मैक्रो की ज़रूरत पड़ सकती है। आप चाहें तो एक संदर्भ देख सकते हैं।
इस अभ्यास में नोड के बीच एज को एक - से दिखाया जाता है, जबकि असली DOT भाषा में -- इस्तेमाल होता है। ऐसा Lean के सिंगल-लाइन कमेंट सिंटैक्स से टकराव से बचने के लिए किया गया है।
साथ ही, हर स्टेटमेंट ; पर खत्म होता है, ग्राफ-लेवल के कमेंट भी।
Exercism पर साइन अप कीजिए और Lean को 100 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।