Значения и переменные
Логическое различие между отношениями и переменными отношениями на самом деле является частным случаем общего логического различия между значениями и переменными, и я хочу немного задержаться на рассмотрении общего случая. (Конечно, это отклонение от темы, но думаю, что время будет потрачено не зря, поскольку ясное понимание этого вопроса может оказать неоценимую помощь и в других случаях.) Сначала некоторые определения.
Определение: Значение – это то, что в логике называется «индивидуальной константой», например целое число 3. У значения нет позиции во времени и пространстве. Однако значения могут быть представлены в памяти посредством некоторой кодировки, и у таких представлений, или видов, имеется позиция во времени и пространстве. Неформально говоря, это означает, что сколько угодно различных переменных (см. следующее определение) могут иметь одно и то же значение одновременно или в разное время. Особо отметим, что (по определению) значение невозможно модифицировать; если бы это было допустимо, то после изменения оно перестало бы быть тем же самым значением.
Определение: Переменная – это контейнер для представления значения. Переменная имеет позицию во времени и пространстве. Переменные, в отличие от значений, можно модифицировать, то есть текущее значение данной переменной можно заменить другим значением, возможно, отличным от исходного. (Ведь само слово «переменная» подразумевает возможность изменения; иначе говоря, переменной можно присваивать значения.)
Отметим, что допустимы не только такие простые значения, как целое число 3. Значение может быть сколь угодно сложным: геометрической точкой, многоугольником, рентгеновским лучом, XML-документом, отпечатком пальца, массивом, стеком, списком, отношением (перечень можно продолжать до бесконечности). То же самое, конечно, относится и к переменным. Я еще буду говорить на эту тему в следующих двух главах.
Может показаться, что трудно не увидеть различия между такими очевидными и фундаментальными понятиями, как значения и переменные. Но на самом деле в эту ловушку попасть очень просто. Вот, к при- меру, цитата из пособия по объектным базам данных (комментарии курсивом в скобках добавлены мной):
Мы отличаем объявленный тип переменной от … типа объекта, являющегося текущим значением этой переменной [следователь- но, объект является значением]… Мы различаем объекты и значения [следовательно, объект таки не является значением]… Изменяющий оператор – [это такой оператор, для которого,] возможно наблюдать эффект его применения к некоторому объекту [получается, что объект является переменной].
Дата добавления: 2017-01-17; просмотров: 1260;