Возможности вычислительных машин и человеческий разум


         

о том, что доступные им


их правильное интуитивное представление о том, что доступные им языки в некотором нетривиальном смысле универсальны, проистекает в основном из их представления о возможности запрограммировать любую процедуру, если она им вполне понятна. Последнее основывается на их опыте, подтверждающем богатые возможности подпрограмм и сводимость сложных процессов принятия решений к иерархиям двоичных выборов (предусматривающих разветвление на два варианта).
Подпрограмма - это, как я отмечал, такая программа, для понимания связи входа и выхода которой мы не обязаны понимать, каким образом задаваемые входные данные преобразуются в ней в данные, воспроизводимые на выходе. Программист, сталкиваясь с трудной подзадачей, всегда может рассчитывать для ее решения на существование соответствующей стандартной подпрограммы. Возможно, он обнаружит ее в какой-нибудь библиотеке программ. Но даже если ему не удастся найти подпрограмму, он может заняться этой подзадачей после того, как разработает стратегию решения своей основной задачи. Если, скажем, основная задача - создание программы, позволяющей вычислительной машине играть в шахматы, то несомненно потребуется подпрограмма выбора хода при заданных расположении фигур на доске и указании, кому ходить - белым или черным. Входом подобной подпрограммы должно являться некоторое представление положения фигур на шахматной доске и, скажем, "0" (при ходе белых) или "1" (при ходе черных). Выходом этой подпрограммы будет конфигурация фигур, воспроизведенная с помощью того же представления, что и входная конфигурация. После того как программист выбрал подходящие представления, что может оказаться также нетривиальной задачей, он вполне может "пользоваться" подпрограммой порождения хода в процессе дальнейшей разработки основной программы так, как если бы указанная подпрограмма уже существовала. Если он - член какой-то группы программистов, то вполне может описать искомую взаимосвязь входа и выхода подпрограммы своему коллеге, который затем эту подпрограмму и напишет.

Содержание  Назад  Вперед