DOT DSL

DOT DSL

دشوار

دستورالعمل‌ها

«زبان دامنه‌اختصاصی» (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 ساخته می‌شود که در آن دایره‌ای قرمز و دایره‌ای آبی روی پس‌زمینه‌ای زرد با خطی سبز به هم وصل شده‌اند.

یک زبان دامنه‌اختصاصی مشابه زبان dot در Graphviz بنویسید.

DSL ما از این نظر مشابه زبان dot در Graphviz است که برای ساختن ساختارهای داده‌ی گراف به کار می‌رود. اما برخلاف زبان DOT، DSL ما یک DSL درونی است که فقط در زبان خودمان به کار می‌رود.

درباره‌ی تفاوت DSLهای درونی و بیرونی بیشتر بدانید.

نحوه‌ی نگارش Lean

در این تمرین باید نحوه‌ی نگارشی برای یک DSL شبیه به زبان DOT تعریف کنید.

این کار احتمالاً نیاز دارد که از نمادگذاری‌ها یا ماکروها استفاده کنید. ممکن است بخواهید یک مرجع را ببینید.

Note

در این تمرین، یال‌ها با یک - تنها بین گره‌ها نمایش داده می‌شوند، برخلاف -- که در زبان واقعی DOT به کار می‌رود. این کار از تداخل با نحوه‌ی نگارش کامنت تک‌خطی Lean جلوگیری می‌کند.

همچنین، هر دستور با ; به پایان می‌رسد، حتی کامنت‌های سطح گراف.


منبع

Wikipediaاین لینک در پنجره یا تب جدیدی باز می‌شود.
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Lean Exercism

آماده‌اید DOT DSL را شروع کنید؟

در Exercism ثبت‌نام کنید تا Lean را همراه با 100 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.