Электронная библиотека
Программисту веб-дизайнеру
Другие материалы
Бесплатная электронная библиотека. Скачать книги DJVU, PDF бесплатно
Д. Баррон, Рекурсивные методы в программировании
Бесплатно скачать книгу, объем 1.37 Мб, формат .djvu
Москва, 1974 год
1. Основные понятия рекурсии
1.1. Введение
1.2. Рекурсивные функции и процедуры
1.3. Обработка рекурсивных данных
1.4. Рекурсия в языках программирования
1.5. Рекурсия в функциональном программировании
1.6. Подсчет с помощью рекурсии
1.7. Полезна ли рекурсия?
2. Примеры и приложения
2.1. Приложения к вычислениям
2.1.1. Решение уравнений
2.1.2. Рекуррентные соотношения
2.1.3. Приближенное интегрирование
2.1.4. Теория чисел
2.1.5. Другие примеры из численного анализа
2.2. Рекурсия в компиляторах
2.2.1. Условные операторы
2.2.2. Синтаксический анализ
2.3. Сортировка
2.4. Обработка алгебраических выражений
2.5. Системы решения проблем
3. Средства реализации рекурсии
3.1. Постановка задачи
3.2. Специальные методы
3.3. Стеки
3.4. Основа для рекурсии
3.6. Система
3.6. Обобщение понятия стека
3.7. Способы повышения эффективности
3.8. Стековая система
3.9. Система рекурсии
3.10. Аппаратные стеки
4. Рекурсия и итерация
4.1. Введение
4.2. Вычислимые функции
4.3. Функции и блок-схемы
4.4. Эквивалентность описаний
Краткая аннотация книги
В книге излагаются рекурсивные методы программирования и демонстрируются возможности рекурсивного описания алгоритмов. Эти методы получают все более широкое распространение в практике программирования, и возможность их применения учитывается при разработке языков программирования и вычислительных машин. В книге показаны перспективы использования рекурсивных методов. Их удобство и эффективность демонстрируются на различных примерах. Книга будет полезна студентам, аспирантам и специалистам, занимающимся разработкой и подготовкой алгоритмов решения задач на вычислительных машинах.
В настоящее время область практического применения рекурсии весьма широка. Она включает, в частности, сложные задачи численного анализа, алгоритмы трансляции, а также различные операции над списками, являющиеся необходимым аппаратом разработки современных автоматизированных систем управления. Поэтому аппарат рекурсии предусматривается практически во всех языках программирования.
Предлагаемая книга, написанная известным специалистом в области программирования Д. Барроном, содержит достаточно полный обзор рекурсивных методов в программировании и характеризуется очень удачным выбором уровня изложения, при котором сочетаются научная строгость и доступность для широкого круга читателей. Эта книга несомненно представляет большой интерес для пользователей и разработчиков современных систем математического обеспечения ЭВМ.
Существует мнение, что "если бы в средние века были вычислительные машины, то одни программисты сжигали бы на кострах других программистов за ересь". Почти наверняка самой страшной ересью считалась бы вера (или неверие) в рекурсию. Достоинства и недостатки рекурсии как средства программирования подвергались широкому обсуждению в течение последних нескольких лет. Как нередко бывает в таких ситуациях, имеется тенденция к сохранению крайних взглядов и к рассмотрению проблемы либо в черном, либо в розовом свете. Одни утверждают, что всегда лучше пользоваться не рекурсией, а итерацией. Другие же настолько верят в рекурсию, что они не снисходят до включения очевидных методов итерации в разрабатываемые ими языки программирования. Автор придерживался при написании этой книги промежуточной позиции, избегая крайних точек зрения. По возможности предмет излагается с учетом перспектив, демонстрируются способы успешного применения рекурсии в различных ситуациях, выявляются соотношения между рекурсией и более известными итеративными методами. Автор старается показать также влияние рекурсивных методов на программное и аппаратное обеспечение вычислительных систем.
В математике рекурсией называется способ описания функций или процессов через самих себя. По-видимому, наиболее известным примером рекурсивно описанной функции является факториальная функция от положительного целого аргумента.
Развитие программирования на различных этапах происходило под влиянием введения новых понятий. Одним из самых ранних понятий была идея замкнутой подпрограммы, которая теперь настолько укоренилась в повседневной практике программирования, что без нее нам трудно представить себе программирование. Я убежден, что общее признание рекурсивных методов окажет в конечном счете такое же значительное влияние на программирование, как и введение подпрограмм. Появление подпрограмм сделало возможным разбиение большой программы на меньшие части. Однако развитие вычислительной математики должно привести к снятию ограничений, налагаемых теперешним уровнем наших возможностей конструирования больших программ. Возникнет необходимость разработки более сложных способов иерархического объединения частей программы и нельзя будет обойтись без рекурсивной структуры.
В настоящее время распространен взгляд на рекурсию как на интересное, но необязательное украшение системы программирования. К тому же против рекурсии существует значительное предубеждение, которое объясняется тем, что в большинстве случаев машины не предназначены для работы с рекурсивными процедурами и поэтому выполняют их неэффективно. Однако если преимущества этого способа программирования получат должную оценку, то машины будут конструироваться с таким расчетом, чтобы облегчать рекурсивное программирование. Надеюсь, что эта книга сможет способствовать признанию рекурсии и убедит читателя в том, что рекурсия не является чем-то нарочито усложненным и не предназначена для касты посвященных, а просто представляет собой еще одно средство программирования, которым можно пользоваться удачно или злоупотреблять, как и всяким другим.
Примечание. Сохраняйте книги на мобильный телефон и скачивайте их с Вашего телефона на компьютер. Удобное скачивание книг через мобильный телефон (в память телефона) и на Ваш компьютер через мобильный интерфейс. Быстрый Интернет без излишних тэгов. Материал носит неофициальный характер и приведен для ознакомления. Прямые ссылки на файлы книг запрещены.