воскресенье, 25 августа 2024 г.

Виды постоянных

  1. По способу введения выделяются:
    1. Непосредственные значения
    2. Константные выражения
    3. Неявные константные выражения
    4. Именованные постоянные
  2. По заменяемости значения делятся на:
    1. Обычные константы
    2. Параметрические постоянные

1.1 Непосредственные значения

Это положительные целые, точные и приблизительные положительные дроби, строки, и логические значения true и false.

1.2. Константные выражения

Это выражения, в которых все операнды тоже постоянные, как непосредственные значения так и подвыражения. Вызов константной функции с константными фактическими параметрами, разумеется, тоже является константным выражением.

1.3. Неявно постоянные выражения (непрозрачные константы)

Это выражения, чьи значения неизменны, несмотря на то, что в них могут присутствовать операнды-переменные, не содержащие в этом месте предопределённые значения. Нахождение таких выражений в коде без специальной отметки является ошибочным состоянием, но их обнаружение в общем случае является сложным делом.

1.4. Именованные

Именованные постоянные появлются как итог создания объявления в отделе для постоянных подпрограммы или раздела.


2.1. Обычные константы

Cмысл обычных констант неразрывно связан с их значением. Такие постоянные нет необходимости менять между трансляциями. Конечно, значение объявлений могут меняться из-за редактирования, но считается, что это меняет смысл кода, а не является свойством объявлений. Примером обычных констант являются приблизительные значения физических и математических постоянных.

2.2. Параметрические постоянные

Значения такого постоянного, разумеется, неизменно во время трансляции и исполнения, но по своему назначению оно может изменяться от трансляции к трансляции. Для параметра значение вторично и не выражает его смысл. Примером параметров является численные значения характеристик программной платформы.


Принципиальная разница между постояным параметром и обычной константой проявляется в анализе. Если истинно константное выражение в качестве условия ветвления считается ошибочным состоянием, поскольку свидетельсвует об ошибке — бессодержательности проверки и возможном наличии недостижимого кода, то аналогичное использование параметров-постоянных трансляции может быть полезным, и не считается ошибкой.

Первично, параметрические постоянные возникают через границу разделов, так как разделы могут меняться. Сам раздел считается целостной единицей и его собственные постоянные внутри него самого рассматриваются как обычные константы.

  1. Непосредственные значения — всегда обычные константы
  2. Константное выражение является параметрическим, если оно содержит хотя бы один параметрический операнд
  3. Именованная константа является параметрической, если
    • В определении ей задано параметрическое выражение
    • Или её имя импортировоано из раздела, где оно экспортировано с меткой ограниченного экспорта по имени
  4. Аналогично, константная функция даёт параметрическое значение, если
    • В определении она использует хотя бы одно параметрическое выражение
    • Или функция импортирована из раздела, где она экспортирована с меткой ограниченного экспорта по имени

Комментариев нет:

Отправить комментарий