Содержание
- 2. Что это такое DSL? Предметно-ориентированный язык (Domain Specific Language) – это язык программирования ограниченной выразительности, фокусирующийся
- 3. Пример программы на DSL Set camera size: 400 by 300 pixels. Set camera position: 100, 100.
- 4. Пример программы на DSL Computer: processor: cores -- 2 type -- i386 disk: size -- 75
- 5. Семантическая модель Представление языка 26
- 6. DSL и eDSL Внешний DSL Реализуется средствами создания ЯП. Произвольный синтаксис. Чужой по отношению к основному
- 7. eDSL средствами java и ruby computer() .processor() .cores(2) .speed(2500) .i386() .disk() .size(150) .disk() .size(75) .speed(7200) .sata()
- 8. Другой пример DSL на ruby [:computer, [:processor, [:cores, 2], [:type, :i386]], [:disk, [:size, 75], [:speed, 7200],
- 9. Как добавить сюда управляющие конструкции? computer() . . . .disk() .size(75) .speed(7200) .sata() .end(); [:computer, .
- 10. Как добавить сюда управляющие конструкции? computer() . . . .times(2) .disk() .size(75) .speed(7200) .sata() .end_times() .end();
- 11. Мы, программисты, представляем себя волшебниками, повелителями кода 20
- 12. A + B * C A + * B C Дерево разбора выражения 19
- 13. A + B * C A + * B C Дерево разбора выражения ( ( )
- 14. A + B * C A + * B C Дерево разбора выражения ( ( )
- 15. Computer: processor: cores -- 2 type -- i386 (Computer (processor (cores 2) (type i386))) c =
- 16. 15
- 17. Unless == not if (unless (= a b) (do something)) (if (not (= a b) (do
- 18. Unless == not if (defmacro unless [cond body] `(if (not ~cond) ~body)) Шаблон: unless Параметры: cond,
- 19. Порядок выполнения функций и макросов 12 Компиляция Макросы Исполнение Функции
- 20. Инфиксная нотация 11 (defmacro infix [arg1 op arg2] (list op arg1 arg2)) (infix 2 + 5)
- 21. (for (i = 0, i (defmacro for [args & body] (let [a1 (nth args 0) a2
- 22. I’ll be back! 09
- 23. Анафорический макрос (defmacro not-nil ([expr then & else] (let [result (symbol "result")] `(let [~result ~expr] (if
- 24. В C# 4.0 мы добавили новую фантастическую возможность: бла-бла-бла! Программисты C# 07
- 25. Пример М.Фаулера SVCLFOWLER 10101MS0120050313 SVCLHOHPE 10201DX0320050315 SVCLTWO x10301MRP220050329 USGE103 x50214..7050329 Как все это распарсить? 06
- 26. Разные типы – разные поля SVCLFOWLER 4-18: CustomerName 19-23: CustomerID 24-27 : CallTypeCode 28-35 : DateOfCallString
- 27. Расставим скобочки… (def-reader SVCLFOWLER [4 18 CustomerName] [19 23 CustomerID] [24 27 CallTypeCode] [28 35 DateOfCallString])
- 28. (defmacro def-reader [class-name & fields] (let [method-names (map #(vector (symbol (nth % 2)) '[] 'String) fields)
- 29. (def-reader fowler.core.ThirdClass [2 7 field1] [9 15 field2] [17 20 field3]) 02
- 30. Почувствуй силу!.. 01
- 32. Скачать презентацию






![Другой пример DSL на ruby [:computer, [:processor, [:cores, 2], [:type, :i386]], [:disk,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/425883/slide-7.jpg)









![Unless == not if (defmacro unless [cond body] `(if (not ~cond) ~body))](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/425883/slide-17.jpg)

![Инфиксная нотация 11 (defmacro infix [arg1 op arg2] (list op arg1 arg2))](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/425883/slide-19.jpg)
![(for (i = 0, i (defmacro for [args & body] (let [a1](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/425883/slide-20.jpg)

![Анафорический макрос (defmacro not-nil ([expr then & else] (let [result (symbol "result")]](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/425883/slide-22.jpg)



![Расставим скобочки… (def-reader SVCLFOWLER [4 18 CustomerName] [19 23 CustomerID] [24 27](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/425883/slide-26.jpg)
![(defmacro def-reader [class-name & fields] (let [method-names (map #(vector (symbol (nth %](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/425883/slide-27.jpg)
![(def-reader fowler.core.ThirdClass [2 7 field1] [9 15 field2] [17 20 field3]) 02](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/425883/slide-28.jpg)

Первый этап заточки. Формирование (фаски) угла на наждаке
Обучение в аспирантуре
Менеджмент и самоменеджмент. Тема 2
Права человека и права ребенка
Презентация на тему Последствия хозяйственной деятельности человека для окружающей среды Загрязнение воздуха
Рабочее колесо диагональной турбины
Peter Stamm
Деятельность- способ существования . (1)
Управление маркетингом. Часть первая. Потребитель
Health is above wealth
Органы по правовому обеспечению и оказанию правовой помощи
Методические рекомендации по составлению рабочей программы по калмыцкому языку и литературе
Чудеса родного края
Август я проводил под Петербургом
Бар Клёвое место
«Он похож на свою родину»
Педагог-психолог
Адаптация на новом месте (2)
Общественное движение в России в 30 - 50 гг. 19 века
Презентация на тему Теория X и теория Y
резервное копирование и восстановление данных
Баянжаргал. - презентация
Общешкольное родительское собрание
2022亚星杯业报价表(12)(1)
Использование амилолитических ферментов в хлебопекарном производстве
Как поклеить обои
ГОРОДСКАЯ СТРАХОВАЯ МЕДИЦИНСКАЯ КОМПАНИЯ
РЕКОНСТРУКЦИЯ ЕВРОПЫИ НОВЫЙ ТИП ГОСУДАРСТВЕННЫХ КРИЗИСОВ