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

Domain Specific Languages (Addison-Wesley Signature Series)
Мартин Фаулер Мартин Фаулер Martin Fowler
Автор
Название в оригиналеDomain Specific Languages (Addison-Wesley Signature Series)
ИздательствоВильямс
Год издания2011
Страниц576
ПереплетТвердый переплет
Формат70х100/16 (170х240 мм, увеличенный)
ISBN978-5-8459-1738-6
ИзготовительООО "Издательский дом "Вильямс". 101509, РФ, г. Москва, ул. Лесная, 43, стр. 1
ИмпортерООО «НТЦ АПИ», г. Минск, ул. Уманская, 54, пом. 1, каб. 34

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

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

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

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

Данная книга, по сути, представляет две книги под одной обложкой. Фаулер начинает с обзора общих принципов и концепций, лежащих в основе предметно-ориентированных языков программирования. Читатели узнают, как работают предметно-ориентированные языки, как добиться, чтобы с пользовательским синтаксисом предметно-ориентированного языка было проще работать, чем с синтаксисом таких альтернатив, как XML. Затем автор переходит к подробному рассмотрению примеров, которые помогут разработчикам лучше понять, когда и как использовать ту или иную методику. Фаулер рассматривает как внутренние, так и внешние предметно-ориентированные языки, а также альтернативные вычислительные модели, генерацию кода и другие темы.

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

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

В книге освещены следующие темы.

  • Сравнение предметно-ориентированных языков с различными схемами и библиотеками, а также решение вопроса о достаточных альтернативах
  • Применение синтаксических анализаторов и генераторов синтаксических анализаторов, синтаксический анализ внешних предметно-ориентированных языков
  • Изучение, сравнение и выбор языковых конструкций предметно-ориентированных языков
  • Применение генерации кода и сравнение стратегий генерации кода
  • Языковые инструментальные средства для создания предметно-ориентированных языков

Книга предназначена, в первую очередь, для профессионалов в области разработки программного обеспечения, но будет интересна и полезна и начинающим программистам. Особо следует отметить, что большая часть описываемых методик применима не только для создания предметно- ориентированных языков, хотя все эти технологии рассматриваются именно в данном контексте. Книга снабжена массой перекрестных ссылок, что упрощает поиск необходимого материала.

Содержание

  • Об авторах
  • Предисловие
  • Часть I. Описание
    • Глава 1. Вводный пример
    • Глава 2. Использование предметно-ориентированных языков
    • Глава 3. Реализация предметно-ориентированных языков
    • Глава 4. Реализация внутреннего DSL
    • Глава 5. Реализация внешнего DSL
    • Глава 6. Выбор между внутренними и внешними DSL
    • Глава 7. Альтернативные вычислительные модели
    • Глава 8. Генерация кода
    • Глава 9. Языковые инструментальные средства
  • Часть II. Общие вопросы
    • Глава 10. Зоопарк DSL
    • Глава 11. Семантическая модель
    • Глава 12. Таблица символов
    • Глава 13. Переменная контекста
    • Глава 14. Построитель конструкции
    • Глава 15. Макрос
    • Глава 16. Уведомление
  • Часть III. Вопросы создания внешних DSL
    • Глава 17. Трансляция, управляемая разделителями
    • Глава 18. Синтаксически управляемая трансляция
    • Глава 19. Форма Бэкуса–Наура
    • Глава 20. Лексический анализатор на основе таблицы регулярных выражений
    • Глава 21. Синтаксический анализатор на основе рекурсивного спуска
    • Глава 22. Комбинатор синтаксических анализаторов
    • Глава 23. Генератор синтаксических анализаторов
    • Глава 24. Построение дерева
    • Глава 25. Встроенная трансляция
    • Глава 26. Встроенная интерпретация
    • Глава 27. Внешний код
    • Глава 28. Альтернативная токенизация
    • Глава 29. Вложенные операторные выражения
    • Глава 30. Символ новой строки в качестве разделителя
    • Глава 31. Прочие вопросы
  • Часть IV. Вопросы создания внутренних DSL
    • Глава 32. Построитель выражений
    • Глава 33. Последовательность функций
    • Глава 34. Вложенные функции
    • Глава 35. Соединение методов в цепочки
    • Глава 36. Перенос области видимости в объект
    • Глава 37. Замыкание
    • Глава 38. Вложенные замыкания
    • Глава 39. Список литералов
    • Глава 40. Ассоциативные массивы литералов
    • Глава 41. Динамический отклик
    • Глава 42. Аннотации
    • Глава 43. Работа с синтаксическим деревом
    • Глава 44. Класс таблицы символов
    • Глава 45. Шлифовка текста
    • Глава 46. Расширение литералов
  • Часть V. Альтернативные вычислительные модели
    • Глава 47. Адаптивная модель
    • Глава 48. Таблицы принятия решений
    • Глава 49. Сеть зависимостей
    • Глава 50. Система правил вывода
    • Глава 51. Конечный автомат
  • Часть VI. Генерация кода
    • Глава 52. Генерация с помощью преобразователя
    • Глава 53. Шаблонная генерация
    • Глава 54. Встроенный помощник
    • Глава 55. Генерация, осведомленная о модели
    • Глава 56. Генерация, игнорирующая модель
    • Глава 57. Отделение генерируемого кода с помощью наследования

Кадры Все 20

Похожие лоты

Вход

В течение нескольких секунд вам придёт SMS с одноразовым кодом для входа. Если ничего не пришло — отправьте код ещё раз.
Это бесплатно, безопасно и займёт всего несколько секунд
Войдите с помощью своего профиля

Регистрация

Введите номер вашего мобильного телефона:
Войдите с помощью электронной почты или номера телефона
Войдите с помощью своего профиля

Восстановление пароля

Укажите адрес электронной почты, который вы использовали при регистрации
Нужна помощь? Напишите нам

Восстановление пароля

Инструкции по восстановлению пароля высланы на 
Нужна помощь? Напишите нам