- По способу введения выделяются:
- По заменяемости значения делятся на:
1.1 Непосредственные значения
Это положительные целые, точные и приблизительные положительные дроби, строки, и логические значения true и false.
1.2. Константные выражения
Это выражения, в которых все операнды тоже постоянные, как непосредственные значения так и подвыражения. Вызов константной функции с константными фактическими параметрами, разумеется, тоже является константным выражением.
1.3. Неявно постоянные выражения (непрозрачные константы)
Это выражения, чьи значения неизменны, несмотря на то, что в них могут присутствовать операнды-переменные, не содержащие в этом месте предопределённые значения. Нахождение таких выражений в коде без специальной отметки является ошибочным состоянием, но их обнаружение в общем случае является сложным делом.
1.4. Именованные
Именованные постоянные появлются как итог создания объявления в отделе для постоянных подпрограммы или раздела.
2.1. Обычные константы
Cмысл обычных констант неразрывно связан с их значением. Такие постоянные нет необходимости менять между трансляциями. Конечно, значение объявлений могут меняться из-за редактирования, но считается, что это меняет смысл кода, а не является свойством объявлений. Примером обычных констант являются приблизительные значения физических и математических постоянных.
2.2. Параметрические постоянные
Значения такого постоянного, разумеется, неизменно во время трансляции и исполнения, но по своему назначению оно может изменяться от трансляции к трансляции. Для параметра значение вторично и не выражает его смысл. Примером параметров является численные значения характеристик программной платформы.
Принципиальная разница между постояным параметром и обычной константой проявляется в анализе. Если истинно константное выражение в качестве условия ветвления считается ошибочным состоянием, поскольку свидетельсвует об ошибке — бессодержательности проверки и возможном наличии недостижимого кода, то аналогичное использование параметров-постоянных трансляции может быть полезным, и не считается ошибкой.
Первично, параметрические постоянные возникают через границу разделов, так как разделы могут меняться. Сам раздел считается целостной единицей и его собственные постоянные внутри него самого рассматриваются как обычные константы.
- Непосредственные значения — всегда обычные константы
- Константное выражение является параметрическим, если оно содержит хотя бы один параметрический операнд
- Именованная константа является параметрической, если
- В определении ей задано параметрическое выражение
- Или её имя импортировоано из раздела, где оно экспортировано с меткой ограниченного экспорта по имени
- Аналогично, константная функция даёт параметрическое значение, если
- В определении она использует хотя бы одно параметрическое выражение
- Или функция импортирована из раздела, где она экспортирована с меткой ограниченного экспорта по имени
Комментариев нет:
Отправить комментарий