- того мира, в котором эта переменная существует. Но почему речь
идет именно об этой программе, почему она такая, а не иная, кто ее автор?
Признавая аналогию между наблюдателем и переменной достаточно полной, мы
уходим от ответа на эти вопросы. Вернее, соглашаемся с одним из двух,
предельно упрощенных, вариантов ответа на них: программист существует, но он
(а следовательно, и причины уникальности программы) вне нашей компетенции,
или программа никем не написана, а такова она просто потому, что такова! Ни
первый, ни второй вариант ответа нас устроить не может, поскольку ответом
фактически не является. А другой предложить мы не в состоянии. Но раз мы не
способны обосновать уникальность нашей программы, приходится признать, что
она - лишь одна из многих! И если об этой программе говорим мы, то о других,
по-видимому, говорят другие. Обилие всевозможных программ-миров, а также
отсутствие 'системного программиста', исполняющего роль распределительного
начала, заметно усложняет задачу идентификации нашей переменной - всю
определяющую ее информацию она должна 'носить с собой'. Что для этого
необходимо? Чтобы разобраться в этом, прежде всего, отметим: для самого
определяемого нечто его имя большой роли не играет - самого себя оно
называет не иначе как 'Я'. Имя же важно лишь для стороннего наблюдателя,
т.е. в том случае, когда это нечто выступает в качестве актера. Для ячейки
ЭВМ тоже не важно, под каким именем она значится в реестре идентификаторов.
Существенно, какие сигналы до нее доходят. Добавим к этому, что одним и тем
же именем можно назвать что угодно. Поэтому важно переменную не столько
назвать, сколько описать, иначе говоря, связать с ней некоторое определение.
В этом определении, прежде всего, указывается тип и адрес этой переменной,
т.е. задается множество ее возможных значений и способ их представления в
компьютере. В приложении к наблюдателю это соответствует первому компоненту
определения. Разумеется, в реальном мире типов наблюдателей несопоставимо
больше, чем типов переменных в программировании, но мы рассматриваем лишь
качественную аналогию. Переменная потому так и называется, что меняет свое
значение. А о том, каковы эти значения, и каков порядок их следования друг
за другом, нельзя говорить, не упоминая об алгоритме, в котором она
задействована - сама по себе, без указания на то, в какой программе (мире)
переменная используется, она - ничто. Поэтому для определения переменной как
конкретной последовательности взаимосвязанных констант необходима
дополнительная информация, определяющая: - алгоритм расчета очередного
значения этой переменной по известной на текущий момент информации (аналог
2-го компонента определения); - алгоритм расчета текущих значений других
величин, задействованных в предыдущем алгоритме и составляющих объектный мир
рассматриваемой переменной (аналог 3-го компонента). Другие части программы,
какими бы важными и масштабными они ни были, не представляют для нашей
переменной ни малейшего интереса, поскольку никак не сказываются на ее
значении (состоянии). По сути, эти части для нее не существуют, точно так
же, как и принципиально другие программы. Ну, раз уж мы заговорили о
существовании, отметим, что пока не существует и самой этой переменной, как
и чего-либо еще из ее мира-алгоритма: этот мир только намечен, но еще не
проявился. Пока он пребывает в статусе потенциально возможного. Чтобы
проявиться этот мир, этот алгоритм должен быть запущен на какой-нибудь ЭВМ.
И вот тут выступает на сцену такой параметр, как тактовая частота
использованного компьютера. Тактовый генератор ЭВМ, задающий ритм смены
состояний всех задействованных в алгоритме величин, представляет собой
аналог четвертого компонента определения. В ходе выполнения алгоритма
переменная будет принимать различные значения, множество которых составит ее
вариабельную часть. Таким образом, если просуммировать сказанное выше, мы
приходим к выводу, что аналогом наблюдателя в программировании является не
просто переменная, а своеобразный миникомпьютер с 'зашитой' в его память
программой, описывающей мир так, как он выглядит с точки зрения некоторой
переменной. Подчеркнем только что сделанное уточнение - указанная программа
описывает мир, но не тождественна ему. Сам проявленный мир представляет
собой процесс