एक डोमेन स्पेसिफिक लैंग्वेज (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 के अंतर के बारे में और जानिए।
इस अभ्यास में आपको builder pattern की मदद से कई struct बनाने हैं।
संक्षेप में, यह पैटर्न आपको यह सुविधा देता है कि जो फंक्शन आपके struct को बनाता है और जिसमें बहुत सारे आर्गुमेंट होते हैं, आप उसे कई अलग-अलग फंक्शनों में बाँट सकें। इस तरीके से struct को बनाना और कॉन्फिगर करना छोटा भी रहता है और बहुत लचीला भी।
इसके बारे में आप अगले पेज पर और पढ़ सकते हैं.