Информация о книге

978-5-8459-1738-6, 978-0-321-71294-3

Главная  » Тематика определяется » Предметно-ориентированные языки программирования

Фаулер М., Предметно-ориентированные языки программирования


серия: Signature Series
Вильямс, 2017 г., 576 стр., 978-5-8459-1738-6, 978-0-321-71294-3


Скачать, но не бесплатно эту книгу можно в интернет-магазинах

  Литрес - 800 руб.

Читать онлайн


Доступен для чтения фрагмент книги

Ключевые слова


  Lisp 


Поделиться ссылкой на книгу



Дополнительно о книге

Предметно ориентированные языки (Domain Specific Languages DSL) были частью компьютерного мира еще до того, как я научился программировать. Спросите вете ранов Unix или Lisp, и они будут счастливы утомить вас до судорог рассказами о том, как предметно ориентированные языки помогали им в их работе и какие трюки с их помощью они ухитрялись выполнять. Тем не менее этим языкам не суждено было стать заметной частью упомянутого компьютерного мира. Большинство людей знают о предметно ориентированных языках только по чьим то рассказам, и часто эти рассказы ограничиваются описанием только одной из сторон имеющихся методов.
Я написал эту книгу в надежде изменить ситуацию и предоставить вам как можно больше информации о методах предметно ориентированных языков, чтобы вы могли принять осознанное решение об их использовании в своей работе и о том, какие именно методы предметно ориентированных языков применять. Предметно ориентированные языки популярны по нескольким причинам, но я остановлюсь только на двух из них: повышение производительности труда разработчиков и улучшение связи с экспертами в предметной области. Правильно выбранный язык может сделать сложный блок кода существенно проще для понимания, что повышает производительность работающих с ним. Он также упрощает общение разработчика программного обеспечения со специалистами в предметной области, по сути предоставляя текст, который одновременно действует и как выполняемое программное обеспечение, и как описание проблемы, которое узкие специалисты в данной области знаний могут про честь, чтобы понять, как их идеи представлены в программной системе. Трудно переоценить возможность говорить со специалистами на одном языке эта возможность разрушает самый высокий из барьеров на пути общения между программистами и их клиентами и устраняет массу узких мест в разработке специализированного программного обеспечения.
Однако не хотелось бы и преувеличивать значение предметно ориентированных языков. Я часто говорю, что всякий раз, рассматривая преимущества применения предметно ориентированного языка для решения той или иной проблемы, вы должны выполнить еще одно рассмотрение, подставив на этот раз вместо слов ‘‘предметно ориентированный язык’’ слово ‘‘библиотека’’. Многое из того, что вы получаете с помо щью предметно ориентированного языка, можно получить, создав соответствующую программную структуру. Большинство предметно ориентированных языков на самом деле представляют собой просто косметический фасад над библиотеками или программ ной структурой. В результате выгоды от предметно ориентированных языков часто оказываются меньшими, чем думают неискушенные в этих вопросах люди; однако в любом случае для принятия решения нужно четко понимать, какие именно положительные и отрицательные стороны имеет каждое из решений. Знание хорошо себя зарекомендо вавших технологий существенно снижает стоимость построения предметно ориентированного языка (и я надеюсь, что моя книга поможет вам получить эти знания). Фасад может быть декоративной деталью, но часто он так же полезен, как и само здание.

Содержание книги

Часть 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. Отделение генерируемого кода с помощью наследования


Об авторе

Фаулер М.
Автор ряда книг и статей об архитектуре ПО, объектно-ориентированному анализу и разработке, языку UML, рефакторингу, экстремальному программированию. Родился в Англии, жил в Лондоне до переезда в Америку в 1994 г. В настоящее время живёт в Бостоне, штат Массачусетс.

Отзывы

Книга получилась достаточно запутанной и многословной  [16 February 2014]
По моему мнению, тот материал из книги, который относится непосредственно к DSL, можно было бы уместить в несколько обзорных статей (попутно убрав тривиальные примеры кода). Более сложные темы (например, иерархия Хомского или синтаксический анализ) разобраны очень поверхностно и не будут понятны без чтения дополнительной литературы.

Итог: если вас интересует внутренний DSL (DSL, который реализован средствами самого языка), то следует обратить внимание на статьи про реализацию DSL именно в вашем языке. Если же вам интересен внешний DSL (новый язык), то обратите внимание на книги и статьи про построение компиляторов и работу с генераторами синтаксических анализаторов ANTLR, Bison+Flex и др. Подчерпнуть же нетривиальную информацию по данным темам из этой книги вам не удастся.
Немного разочарован  [24 December 2011]
Все ничего, но краска в книге такая вонючая, никак не выветрится (купил больше двух недель назад), читать невозможно. И за такую цену. Зачем так издеваться над читателями? Невольно напрашивается аналогия с BHV, но у тех бумага чтобы в сельский туалет ходить и самокрутки крутить...
По содержанию ничего пока не скажу, т.к. не прочитал.

Последние поступления в рубрике "Тематика определяется"



Ритуальный оракул Магия зеркал, 53 карты + инструкция 

Представляем вам новую профессиональную колоду Любови Никифоровой (Отилы), являющуюся продолжением ранее изданной и уже популярной колоды «Ритуальный Оракул». В ней вы познакомитесь с азами работы с зеркалами, видами магических воздействий и способами их снятия....

Оракул Норн. Нити судьбы, 45 карт+инструкция 

Оракул Норн: нити судьбы - действительно уникальная колода. Предсказывать будущее или узнавать обстоятельства прошлого и настоящего помогают Боги, Богини и герои Древней Скандинавии. Они дают подробное описание грядущих событий, которое напрямую зависит не только от обстоятельств, но и от характера человека, который хочет узнать свое будущее....

Оракул Вселенской любви Ангелов, 72 карты + инструкция 

Оракул Вселенских Ангелов — это уникальная колода карт, созданная для тех, кто ищет направление и поддержку в области любви и добра от духовного мира Ангелов. Колода состоит из 72 карт, на каждой из которых изображен Ангел....

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