একটি ডোমেইন স্পেসিফিক ভাষা (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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।