год-2011
272 страницы
В настоящей книжке Начала программирования. Степанов А.,Мак-Джонс Пол применяется дедуктивный подход к программированию, основанный на объединении программ с абстрактными математическими теориями, которые обеспечивают их работу.
Представлены вместе описания таких теорий, алгоритмы, записанные с позиции таких теорий, и теоремы и леммы, описывающие их свойства. Реализация алгоритмов на реальном языке программирования является центральной темой книжки.
Эта книга Начала программирования предназначена для тех, кто стремится глубже понять суть программирования, будь то профессиональные программисты или исследователи и инженеры, для которых программирование составляет важную часть их профессиональной деятельности. Книга предназначена для чтения от начала и до окончания. Читатели смогут достичь понимания материала, лишь изучая код, доказывая леммы и выполняя упражнения.
"В книжке содержатся одни из максимально замечательных образцов кода, с которыми я когда-или сталкивался."
- Бьярне Страуструп, разработчик языка C++
Краткое содержание книжки
В главе 1 приведено описание значений, типов, объектов, процедур и концепций. Главы 2-5 посвящены алгоритмам на алгебраических структурах, таких как полугруппы иполностью упорядоченные множества. В главах 6-11 описываются алгоритмы на абстрактных представлениях памяти. В главе 12 рассматриваются объекты, содержащие иные объекты.
В послесловии представлены общие размышения о подходе, изложенном в книжке.
"Как видно, инженеры-механики, строители и электрики в собственной работе опираются на надежные математические основания. В то же время, инженеры-программисты нередко практикуют свое мастерство, не имея или практически не имея представления о том, на каком математическом фундаменте зиждется то, чем они занимаются. А позже мы не можем понять, по какой причине ПО печально известно тем, что поставляется с опозданием и содержит немало ошибок, при том, что иные инженеры как правило сдают в эксплуатацию готовые мосты, автомобили, электрические приборы и пр. своевременно и с незначительными дефектами. Настоящая книга призвана устранить это неравенство. Члены моего коллектива, занимающиеся сложными разработками в компании Adobe, после прохождения курса по материалам книжки получили оченьположительную отдачу от вложенных усилий. С первого взгляда книга может казаться вполне специализированной, предназначенной лишь для теоретиков в области компьютерных наук, однако фактически она обязана быть непременно изучена всеми инженерами-программистами, которые ставят перед собою солидные задачи".
- Мартин Ньюэлл, заслуженный ученый Adobe
"Я счастлив видеть, что содержимое курса Алекса, разработку которого я настоятельно поддерживал как технический директор Silicon Graphics, сейчас доступно для всех программистов в этой изящной маленький книжке".
- Форест Баскетт, главный партнер, New Enterprise Associates
"Терпение и организационный опыт Пола помогли сделать на базе математического подхода Алекса четко структурированное произведение, а это - впечатляющий подвиг!"
- Роберт В. Тэйлор, основатель Xerox PARC SCL и DEC Systems Research Center
Об авторах
Александр Степанов изучал математику в Московском государственном университете с 1967 по 1972 гг. Он работает в области программирования с 1972 г.: сначала в Советском Союзе, а после эмиграции в 1977 г. в Соединенных Штатах. Он занимался программированием операционных систем, инструментовпрограммирования, компиляторов и библиотек. Его работа над началами программирования поддерживалась General Electric, Политехническим институтом Бруклина, AT&T, HP, SGI, и, с 2002 г., - Adobe. В 1995 г. он получил премию "Excellence in Programming" (от Dr. Dobb's Journal) за проект стандартной библиотеки шаблонов C++.
Мак-Джонс Пол изучал прикладную математику в Калифорнийском университете, Беркли, с 1967 до 1971 гг. С 1967 г. он занимался программированием в областях операционных систем, сред программирования, систем обработки приложений и транзакций для промышленных компаний и потребительского рынка. Он работал в Калифорнийском университете, IBM, Xerox, Tandem, DEC, и, с 2003 г., - в Adobe. В 1982 г. он и его соавторы получили премию "ACM Programming Systems and Languages Paper" за статью "Диспетчер по восстановлению системы управления БД System R".
Оглавление книги
"Начала программирования"
Об авторах - Читать
Предисловие - Читать
Глава 1. Вводные определения
Глава 2. Преобразования и их орбиты
Глава 3. Ассоциативные операции
Глава 4. Линейные упорядочения - Читать
Глава 5. Упорядоченные алгебраические структуры
Глава 6. Итераторы
Глава 7. Координатные структуры
Глава 8. Координаты с изменяемыми последователями
Глава 9. Копирование
Глава 10. Переупорядочения
Глава 11. Разбиение и слияние
Глава 12. Составные объекты
Послесловие
Глава A.Математическая система обозначений
Глава B. Язык программирования