Читать онлайн «Ошибки-ловушки при программировании на фортране»

Автор Михаил Комаров

БИБЛИОТЕЧКА ПРОГРАММИСТА Г. К. БОРОВИН М. М. КОМАРОВ B. C. ЯРОШЕВСКИЙ Ошибки- ловушки при программировании на фортране БИБЛИОТЕЧКА ПРОГРАММИСТА Г. К. БОРОВИН, М. М. КОМАРОВ, В. С. ЯРОШЕВСКИЙ ОШИБКИ-ЛОВУШКИ ПРИ ПРОГРАММИРОВАНИИ НА ФОРТРАНЕ Под редакцией Ю. М. БАЯКОВСКОГО МОСКВА «НАУКА» ГЛАВНАЯ РЕДАКЦИЯ ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ 198 7 ПРЕДИСЛОВИЕ ТИТУЛЬНОГО РЕДАКТОРА У книги, с которой вы начинаете знакомиться, не совсем обычное название. Необычен и ее жанр. Это — не монография, не учебник, не задачник. Можно, наверное, назвать такую книгу хрестоматией, в которой собраны примеры, позволяющие совершенствовать искусство программирования на фортране. Конечно, если приходится от случая к случаю писать небольшие программы, можно обойтись весьма поверхностньми представлениями о языке. Зачастую и программировать-то нет нужды — в библиотеке отыщется готовая, ранее уже кем-то написанная программа.
Однако при решении больших и сложных задач (а именно для решения таких задач создаются и совершенствуются вычислительные машины) прикладной программист вынужден провести иногда довольно глубокое экспериментальное исследование транслятора. Инструментом нужно владеть в совершенстве и пользоваться им разумно и эффективно. К сожалению, в документации, которой располагает программист, содержится, как правило, лишь самая общая информация о языке и ке обсуждаются особенности реализации тех или иных его конструкций, а реализованы они могут быть по-разному. Как-то проводилось исследование шести различных трансляторов языка фортран, и оно показало, что только одна конструкция (а именно — CONTINUE) во всех трансляторах интерпретируется одинаково. При составлении больших программ необходимо учитывать множество порой противоречивых факторов. Важны и микросекунды, которые затрачиваются на выполнение оператора, и килобайты, которые займет программа в памяти. К тому же полезно обеспечить мобильность программы — возможность решения задачи на разных машинах. Использование тонких, нетривиальных особенностей языка (а тем более транслятора) неизмеримо повышает риск появления ошибок. Считают, что количество ошибок растет экспоненциально с увеличением длины программы. В «программистском фольклоре» бытует утверждение, согласно которому «в любой работающей программе есть хотя бы одна ошибка». Стадия отладки и тестирования программ чрезвычайно трудоемка. По некоторым оценкам на нее приходится 40—50 % времени, затрачиваемого на производство программы. Принято даже считать, что «хороший программист не тот, который не допускает ошибок, а тот, который их быстро находит». Новичка ошибки обескураживают, приводя его в полнейшее уныние. Стоит ли удивляться: в институтах технике отладки не учат, а формальных правил отладки вообще не существует. В этих условиях настоящая книга может служить существенным подспорьем. Основываясь на своем богатом опыте и опыте своих коллег, авторы собрали, можно сказать, хрестоматийные примеры ошибок, имеющих самую разную природу. Легкость отладки в значительной мере зависит и от стиля программирования.