Добавить новость
ru24.net
Все новости
Март
2023

Вариант реализации DSL (domain-specific language) с помощью макросов

0

Близится релиз языка NewLang с принципиальной новой «фишкой», переделанным вариантом препроцессора, который позволяет расширять синтаксиса языка для создания различных диалектов DSL за счет макросов.


И, как всегда, используя ранее найденный лайфхак Хабр — ума палата, хотелось бы получить от читателей обратную связь насчет предлагаемого ниже подхода, который планируется к реализации в новом препроцессоре NewLang.


О чем идет речь?


DSL (Предметно-ориентированный язык) — язык программирования, специализированный для конкретной области применения. Считается, что использование DSL существенно повышает уровень абстрактности кода, а это позволяет вести разработку более быстро и эффективно и существенно упрощает решение многих задач.

Условно, можно выделить два подхода к реализации DSL:


  • Разработка независимых трансляторов синтаксиса с помощью генераторов лексеров и парсеров для определения грамматики целевого языка посредством БНФ и регулярных выражений (Lex, Yacc, ANTLR и т. д.) и последующей компиляцией полученной грамматики в машинный код.
  • Разработка или встраивание диалекта DSL на языке (метаязыке) общего назначения, в том числе за счет применения различных библиотек или специальных парсеров / препроцессоров.

Далее речь пойдет о втором варианте, а именно, о реализации DSL на базе языков (метаязыков) общего назначения и новом варианте реализации макросов в NewLang как основы для разработки DSL.

Читать дальше →



Moscow.media
Частные объявления сегодня





Rss.plus




Спорт в России и мире

Новости спорта


Новости тенниса
Australian Open

«Я слишком стара, но иду дальше». Списанная русская теннисистка покоряет Австралию и готова мстить за Мирру






«Приятно, когда президент тебя знает»: Овечкин высказался о словах Трампа

В Подмосковье отремонтировали детскую поликлинику

Трамп может пересмотреть взгляды на исключительность США из-за соперничества с Россией

ЦСКА потерпел поражение от «Северстали» в матче КХЛ