Публикации по теме 'dsl'
ПОСТРОИТЕЛЬ РЕЗУЛЬТАТОВ И DSL — X — ФАЙЛ
Почти месяц назад я с коллегой начал создавать новую библиотеку под названием BitWiser . Это библиотека, которая помогает разработчику работать с битами, байтами и полубайтами. Много работая с bluetooth, я обнаружил, что было бы интересно написать DSL близко к SwiftUI, но для создания объектов данных. В этой статье я объясню, как создать свой собственный DSL, как это сделал я в BitWiser .
МАГИЯ
Вероятно, вы уже видели такой фрагмент кода и знаете, откуда он взялся.
И,..
Определение языка последовательности
Даже такой крошечный язык, как Sequence, требует тщательного и итеративного процесса, вам нужно учитывать как семантику, так и синатакс.
Обсуждая языки, особенно компьютерный, я заметил, что люди часто начинают с выражения своего взгляда на синтаксис и грамматику. Подобно тому, как легко получить свое мнение о внешнем виде приложения, они оба являются пользовательскими интерфейсами . Гораздо важнее семантика , то, что язык позволяет выразить. Я не думаю, что внешний вид или синтаксис..
Turtles All The Way Down: создание простых и мощных Ruby DSL
Доменно-специфический язык (DSL) - это специализированный способ четкого описания проблемной области. Ruby - отличный язык для создания DSL, потому что он позволяет разработчикам решать, как этот язык выглядит и как его использовать. Например:
RSpec для написания тестов:
FactoryGirl для имитации объектов:
GeoEngineer для определения облачных ресурсов:
В этом посте будет кратко описано, как использовать Ruby для создания DSL, подобных приведенным выше примерам...
Легкое создание прототипов и проектирования на предметно-ориентированном языке
Доменные языки (DSL) очень полезны. Это языки, которые действительно хорошо ориентированы на решение одной конкретной проблемы, абстрагируясь от деталей, которые мешают продуктивности или инновациям. У них также есть несколько более простой синтаксис, который люди, знающие о Домене, могут быстро освоить. Некоторые из них являются полноценными языками, другие - автономными идиомами, созданными внутри языка общего назначения. Свободный API jQuery можно рассматривать как DSL для сверхлегкого..
TypeDraft: Язык — это новая структура
TypeDraft является расширенным набором TypeScript и добавляет к языку механизм DSL и макросов. Если TypeScript — это масштабируемый JavaScript, то TypeDraft должен быть масштабируемым TypeScript.
DSL
В этой части мы рассмотрим 3 DSL: отладку, сопоставление и просмотр.
Синтаксис DSL:
{
"use <dsl name>";
...
}
Отладка: условная компиляция
Мы можем создать разные версии библиотеки, указав разные переменные среды. Например, в Реализовать DSL мы реализовали..
Итак, писать код просто.
Итак, писать код просто. Напишите тестовый толчок, и все готово. Иногда вам нужно подготовить конфигурацию среды выполнения для вашего продукта. Все в порядке, всего несколько строк sql или экспорт из базы данных….
Но что делать, если продукт гибкий и зависит от конфигурации? Ну, наш дядя Excel возвращается и помогает с этими 30 файлами CSV, которые содержат дублированные данные повсюду. Теперь вы можете быть счастливы, что вы и деловой человек создали эти 4000+ записей начальной..
Вопросы по теме 'dsl'
DSL для запросов Linq - в поисках идей
В настоящее время я использую CMS, которая использует ORM со своим собственным языком запросов (например, с операторами select / where / orderby). Я называю этот мини-язык DSL, но могу ошибиться в терминологии.
Мы пишем элементы управления для...
694 просмотров
schedule
17.08.2022
перевод блоков и операторов для DSL
Я хочу написать простой Ruby DSL для перевода некоторых операторов и выражений на другой язык. Основным примером может быть:
some_function {
t + 2
}
Здесь t не является переменной ruby, и поэтому блок не может (и не должен!) оцениваться...
395 просмотров
schedule
04.05.2022
Мне нужен DSL для расчета времени
Кто-нибудь знает DSL для расчета времени, что-то, что могло бы понять такие понятия, как «второй рабочий день после последнего рабочего дня месяца»?
Я не против написать парсер, но мне нужна помощь с самим языком.
228 просмотров
schedule
13.03.2023
Узнать больше о синтаксическом анализе
Я занимаюсь программированием с 1999 года для работы и развлечения. Я хочу узнавать что-то новое, и в последнее время я сосредоточился на синтаксическом анализе, поскольку большая часть моей работы - это чтение, интеграция и анализ данных. У меня...
715 просмотров
schedule
18.08.2022
Разбор и оценка заданных условий
То, что я пытаюсь сделать, это написать простой синтаксический анализатор для следующего случая в .NET.
( [PART3]function1() AND [PART4]function7() ) OR [PART2]function90()
[PART] указывает местоположение оценки (предположим, что это...
415 просмотров
schedule
01.11.2022
Генератор парсеров для Delphi?
Может ли кто-нибудь порекомендовать генератор парсеров, который будет создавать код Win32 Delphi? Я пытаюсь создать простой предметно-ориентированный язык.
2973 просмотров
schedule
24.11.2023
Как создать доменный язык запросов?
У меня есть база данных биологии, которую я хотел бы запросить. Есть также определенный банк терминологии, к которому у меня есть доступ, который имеет формализуемые предикаты. Я хотел бы создать язык запросов для этой БД, используя упомянутые...
5238 просмотров
schedule
17.04.2022
Лучший дизайн для генерации кода из AST?
Я работаю над довольно сложным DSL, который хочу скомпилировать в несколько языков высокого уровня. Весь процесс был опытом обучения. Компилятор написан на java.
Мне было интересно, знает ли кто-нибудь передовую практику проектирования части...
7570 просмотров
schedule
06.08.2023
DSL для генерации тестовых данных
Есть несколько способов генерировать данные для тестов (не только модульных тестов), например, Object Mother, builders и т. Д. Еще один полезный подход - записать тестовые данные в виде простого текста:
product: Main; prices: 145, 255; Expire:...
1314 просмотров
schedule
17.08.2022
Реализация поддержки генератора на настраиваемом языке
У меня есть немного феттиша к языковому дизайну, и сейчас я играю со своим собственным языком хобби. ( http://rogeralsing.com/2010/04/14/playing-with-plastic/ )
Одна вещь, которая действительно заставляет меня кровоточить, - это «генераторы» и...
343 просмотров
schedule
02.03.2023
Есть ли Scala DSL для графического интерфейса?
Есть ли Scala DSL для графического интерфейса?
1209 просмотров
schedule
19.05.2022
Интересные DSL, реализованные на Scala?
Я видел BASIC и Apache Camel DSL в Scala, и они просто фантастические. Есть еще примеры таких DSL?
4547 просмотров
schedule
18.06.2022
Базовая архитектура механизма правил
В настоящее время мы разрабатываем проект на .NET, который включает в себя анализ XML-документов на предмет соответствия набору правил, определенных пользователем. Вот пример:
<Person>
<Name>Bob</Name>
<Cars>...
1086 просмотров
schedule
12.11.2023
Существуют ли Clojure DSL?
Есть ли какой-либо DSL (предметно-ориентированный язык), реализованный в Clojure?
5949 просмотров
schedule
16.04.2023
Гибкая библиотека английских фраз для Python?
Я ищу функцию, которая может преобразовать английскую фразу даты в какой-то объект даты Python, представляющий соответствующую дату.
Пример того, что я ищу (хотя я гибкий):
Через три дня
вчерашний день
В течении месяца
Следующий год
18...
691 просмотров
schedule
09.11.2022
Лучшее решение, чем lex / yacc для разбора DSL на C?
Одна из моих программ принимает команды (например, kill foo ) во время выполнения. Думайте об этом как о небольшом предметно-ориентированном языке. Вот несколько примеров:
kill
kill client
exit
Но также разрешены связанные команды, а...
2978 просмотров
schedule
14.05.2023
Переименование classOf в Scala
Я работаю над читаемым пользователем DSL для ScalaTest. На данный момент я могу написать
feature("Admin Login") {
scenario("Correct username and password") {
given("user visits", classOf[AdminHomePage])
then(classOf[SignInPage], "is...
380 просмотров
schedule
02.09.2022
Как вы разгребаете базу данных Heroku?
У меня есть приложение на Heroku . Однако всякий раз, когда я изменяю свою базу данных локально, а затем отправляю изменения в приложение, база данных не меняется.
Я понял, что мне нужно запустить грабли на базе Heroku. Однако, когда я пытаюсь...
299 просмотров
schedule
03.08.2023
Являются ли DSL для конкретного проекта ответственностью?
Я развил этот вопрос из аналогичного вопроса, который я задал в комментарии, который я сделал к одному из многих замечательных ответов, которые я получил. Первоначально я спрашивал о макросах AST, которые в основном вызывали очень подробные и...
472 просмотров
schedule
09.01.2023
Будет ли работать мой DSL для Lua? (это кажется слишком простым, чтобы быть правдой)
Мне очень нравится Lua как язык программирования, НО меня невероятно беспокоит необходимость постоянно печатать " local "для всех моих локальных переменных.
Это просто делает мой код более загроможденным.
Поэтому мне интересно, могу ли я...
780 просмотров
schedule
07.10.2022