Предметно-орієнтована мова (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 тим, що нашу DSL будемо використовувати для створення структур даних графів. Однак, на відміну від мови DOT, наша DSL буде внутрішньою DSL, призначеною лише для використання в нашій мові.
Дізнаймося більше про різницю між внутрішніми та зовнішніми DSL.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Elixir, а також 58 концепцій168 вправ та справжнє наставництво від людей, і все це безкоштовно.