Предметно-ориентированные языки программирования

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

В этой книге известный эксперт в области программного обеспечения Мартин Фаулер предоставляет информацию, которая поможет вам определиться, следует ли использовать предметно-ориентированные языки для решения стоящих перед вами задач. Если применение предметно-ориентированных языков окажется оправданным, то вам пригодится вторая часть книги, в которой подробно, на конкретных примерах, описаны технологии, применяемые при создании таких языков.
Методы, описанные в данной книге, могут использоваться в большинстве современных объектно-ориентированных языков программирования. В основном примеры в книге написаны на Java и C#, но в некоторых из них использован Ruby. Все главы по возможности организованы в виде самодостаточных частей, а большинство справочных разделов - в знакомом читателю формате описания шаблонов программирования.
При правильном выборе и применении предметно-ориентированные языки могут существенно упростить сложный код, обеспечить эффективное общение с пользователями, повысить производительность и устранить узкие места разработки.

Author(s): Мартин Фаулер
Publisher: Вильямс
Year: 2011

Language: Russian
Tags: Библиотека;Компьютерная литература;


Предисловие 17
Благодарности 24
Часть I. Описание 27
Глава 1. Вводный пример 29
Глава 2. Использование предметно-ориентированных языков 49
Глава 3. Реализация предметно-ориентированных языков 63
Глава 4. Реализация внутреннего DSL 85
Глава 5. Реализация внешнего DSL 105
Глава 6. Выбор между внутренними и внешними DSL 119
Глава 7. Альтернативные вычислительные модели 127
Глава 8. Генерация кода 135

Часть II. Общие вопросы 157
Глава 10. Зоопарк DSL 159
Глава 11. Семантическая модель 171
Глава 12. Таблица символов 177
Глава 13. Переменная контекста 187
Глава 14. Построитель конструкции 191
Глава 15. Макрос 195
Глава 16. Уведомление 205
Часть III. Вопросы создания внешних DSL 211
Глава 17. Трансляция, управляемая разделителями 213
Глава 18. Синтаксически управляемая трансляция 229
Глава 19. Форма Бэкуса–Наура 237
Глава 20. Лексический анализатор на основе таблицы регулярных выражений 247
Глава 21. Синтаксический анализатор на основе рекурсивного спуска 253
Глава 22. Комбинатор синтаксических анализаторов 263
Глава 23. Генератор синтаксических анализаторов 277
Глава 24. Построение дерева 289
Глава 25. Встроенная трансляция 305
Глава 26. Встроенная интерпретация 311
Глава 27. Внешний код 315
Глава 28. Альтернативная токенизация 325
Глава 29. Вложенные операторные выражения 333
Глава 30. Символ новой строки в качестве разделителя 339
Глава 31. Прочие вопросы 343
Часть IV. Вопросы создания внутренних DSL 347
Глава 32. Построитель выражений 349
Глава 33. Последовательность функций 357
Глава 34. Вложенные функции 361
Глава 35. Соединение методов в цепочки 375
Глава 36. Перенос области видимости в объект 387
Глава 37. Замыкание 397
Глава 38. Вложенные замыкания 403
Глава 39. Список литералов 415
Глава 40. Ассоциативные массивы литералов 417
Глава 41. Динамический отклик 423
Глава 42. Аннотации 439
Глава 43. Работа с синтаксическим деревом 449
Глава 44. Класс таблицы символов 461
Глава 45. Шлифовка текста 469
Глава 46. Расширение литералов 473
Часть V. Альтернативные вычислительные модели 477
Глава 47. Адаптивная модель 479
Глава 48. Таблицы принятия решений 485
Глава 49. Сеть зависимостей 495
Глава 50. Система правил вывода 503
Глава 51. Конечный автомат 517
Часть VI. Генерация кода 521
Глава 52. Генерация с помощью преобразователя 523
Глава 53. Шаблонная генерация 529
Глава 54. Встроенный помощник 537
Глава 55. Генерация, осведомленная о модели 545
Глава 56. Генерация, игнорирующая модель 557
Глава 57. Отделение генерируемого кода с помощью наследования 561
Список литературы 569
Предметный указатель 570