[#] Kotlin DSL: Теория и Практика
habrabot(difrex,1) — All
2017-11-02 00:30:03


Sql, RegExp, Gradle — что их объединяет? Всё это примеры использования проблемно-ориентированных языков или DSL (domain-specific language). Каждый такой язык решает свою узконаправленную задачу, например, запрос данных из БД, поиск совпадений в тексте или описание процесса сборки приложения. Язык Kotlin предоставляет большое количество возможностей для создания собственного проблемно-ориентированного языка. В ходе статьи мы разберемся, какие инструменты есть в арсенале программиста, и реализуем DSL для предложенной предметной области.



Весь синтаксис, представленный в статье, я объясню максимально просто, однако, материал рассчитан на практикующих инженеров, которые рассматривают Kotlin, как язык для построения проблемно-ориентированных языков. В конце статьи будут приведены недостатки, к которым нужно быть готовым. Используемый в статье код актуален для Kotlin версии 1.1.4-3 и доступен на GitHub.



![][1]

[Читать дальше →][2]

[1]: https://habrastorage.org/webt/lq/hh/et/lqhhetd_sjpnqtbrv5cdvow7pzo.png
[2]: https://habrahabr.ru/post/341402/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut