Описание книги
В этой основательной и вместе с тем доступной книге проектировщик новаторского программного обеспечения Александр Степанов и его коллега Дэниэл Роуз объясняют принципы обобщенного программирования и стоящее за ними понятие математической абстракции. Понимание этих принципов поможет вам писать код одновременно более простой и более эффективный.
Любой достаточно квалифицированный программист, умеющий логически мыслить, уже обладает достаточными знаниями для прочтения этой книги. Авторы на удивление доходчиво сообщают необходимые сведения из общей алгебры и теории чисел. Они подробно объясняют, какие проблемы должны были сначала разрешить математики, в затем показывают, как найденные ими решения переводятся на язык обобщенного программирования и позволяют создать эффективный и элегантный код. Для демонстрации важнейшей роли математических оснований во многих современных приложениях авторы показывают, как полученные результаты и обобщенные алгоритмы можно применить в практически используемой криптосистеме с открытым ключом.
Читая эту книгу, вы освоите мыслительный процесс, необходимый для эффективного программирования, и научитесь обобщать найденные для частного алгоритмы с целью расширить область их полезного применения без потери эффективности. Вы также постигнете, в чем состоит ценность математики для программирования, - и это понимание пригодится вне зависимости от того, на каком языке вы пишете и какую парадигму применяете.
Александр А. Степанов занимается программированием с 1972 года, сначала в Советском Союзе, а затем, после эмиграции в 1977 году, в США. Он принимал участие в программировании операционных систем, инструментальных средств программирования, компиляторов и библиотек. В работе по основаниям программирования ему оказывали поддержку компания Дженерал Электрик, Политехнический университет, компании BellLabs, HP, SGI, Adobe, и - с 2009 года по сей день - A9.com, дочерняя компания Amazon, специализирующаяся на технологиях поиска. В 1995 году журнал "Dr. Dobb'sJournal" присудил ему премию "За выдающиеся заслуги в программировании" за проектирование стандартной библиотеки шаблонов C++ (StandardTemplateLibrary).
Дэниэл Э. Роуз - ученый-исследователь, занимал руководящие должности в компаниях Apple, AltaVista, Xigo, Yahoo и A9.com. Круг его научных интересов охватывает технологии поиска, от низкоуровневых алгоритмов сжатия индекса до вопросов взаимодействия машины и человека в процессе поиска в веб. Роуз руководил в компании Apple группой, разработавшей систему локального поиска для компьютера Macintosh. Он обладатель докторской степени по когнитивистике и информатике, присужденной Калифорнийским университетом в Сан-Диего, а также степени бакалавра по философии, присужденной Гарвардским университетом.
- Античные парадоксы, красивые теоремы, единство и противоположность непрерывного и дискретного
- Действенные математические подходы к абстрагированию
- Общая алгебра как источник идей обобщенного программирования
- Аксиомы, доказательства, теории и модели: применение математических методов для организации знаний об алгоритмах и структурах данных
- Удивительные тонкости, скрывающиеся в простых программистских задачах, и какие уроки можно из них извлечь
- Как теоретические знания помогают практической реализации