Содержание
- 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)

Презентация на тему Понятие и признаки государства
Мясо по-французски
Автономное существование человека в природе
Презентацию подготовила учитель русского языка и литературы Гаврилова Альбина Павловна
Логические основы компьютера. Базовые логические элементы
Архитектура
По улицам Кронштадта
ПОТЕШКИ
Презентация на тему Швейцария Национальный колорит
Пищеварительная система человека
Стили работы организатора
Тестировщик на все руки в Scrum-команде Наталья Медведева. - презентация
Оригинальные сувениры, подарки
Муниципальное общеобразовательное учреждениесредняя общеобразовательная школа №21Первомайского района г. Ростова-на-ДонуБибл
Презентация на тему Рассуждение Тип текста
Исследование влияния состава почв на кресс-салат
Малое и среднее предпринимательство и поддержка индивидуальной предпринимательской инициативы Республики Карелия
Chocolate
Человек. Социально-психологические особенности человека:
Презентация на тему Природа Казахстана
Смольный институт благородных девиц
Суицид как форма девиантного поведения подростков
А.Г.Венецианов.Личная жизнь.
Методы преподавания программирования в базовом курсе информатики
Проект «ТАЙНЫ ВОДЫ» Авторы: учащиеся 8в класса МОУ «СОШ №2 г.Калининска» Руководитель: Шустикова М.В.
Тема: «Причастный оборот. Его роль в речи. Выделение причастного оборота на письме».
Проект Free Way Кучер Максим Краснодар
Дифференциация и индивидуализация обучения