Читайте также:
|
|
Семантика
Синтаксис языка СИМУЛА для декларации типа отличается от принятого в языке АЛГОЛ-60 тем, что в первом нет понятия own. «Значение» — это информация, интерпретируемая во время исполнения программы как представляющая сама себя.
Примерами значений являются: экземпляр некоторого вещественного числа, некоторый объект или отрезок'"текста*.«Ссылка» — это информация, указывающая на (или ссылающаяся на) некоторое значение. Для удобства обозначения различие между ссылкой и значением, на которое она ссылается, определяется из контекста.
Понятие ссылки интуитивно соответствует известному понятию «имени» или «указателя». Оно также отражает возможности вычислительных машин обращаться по адресу:
в ряде простых случаев ссылка могла бы быть реализована в виде адреса некоторого сохраняемого в памяти значения.
Понятие ссылки не вводится во всей его общности, что
объясняется стремлением сохранить эффективность исполнения программы на вычислительной машине. В частности, нет
ссылок, указывающих на значения переменных обыкновенного типа. Переменная, локальная в некотором экземпляре блока, - это некоторый участок памяти (ячейка), содержащий или значение (если переменная обыкновенного типа), или ссылку (если переменная ссылочного типа). Переменная ссылочного типа имеет то значение, на которое ссылается «содержимое» этой переменной. Содержимое переменной может изменяться соответствующими операторами присваивания.
Ссылки на объекты
С объектом связана единственная ссылка на объект, определяющая его однозначно. C каждым классом С связан тип ссылок на объект ref (С). О некоторой величине такого типа говорят, что ее квалификация распространяется на класс С или что она квалифицирована классом С. Ее значением может быть или некоторый объект, или специальное значение none, означающее «нет объекта». Квалификация ограничивает область значений ссылочной величины объектами классов, содержащихся в квалифицирующем классе. Такая область значений независимо от квалификации всегда включает значение none.
Литеры
Литерное значение (значение типа character) — это экземпляр «внутренней литеры». В любой конкретной реализации языка должно быть установлено взаимно однозначное соответствие между некоторым подмножеством множества всех внутренних литер и внешними («печатными») литерами. Алфавиты литер (внутренних и внешних) определяются в каждой конкретной реализации языка.
Упорядоченность алфавита
Совокупность внутренних литер упорядочена. Этот порядок определяется в каждой конкретной реализации языка; тем самым устанавливается взаимно однозначное соответствие между внутренними литерами и некоторым подмножеством совокупности целых чисел. Это соответствие выражается следующими процедурами-функциями:
integer procedure rank (С); character С;
значение такой функции лежит в пределах [О, N — 1], где N есть количество внутренних литер, и
character procedure char (n); integer n;
значение параметра должно лежать в пределах [О, N—1], в противном случае во время исполнения программы будет выдано сообщение об ошибке.
В большинстве случаев цифры (0—9) кодируются во внутреннем представлении последовательными значениями, причем возрастание значения цифры соответствует порядку во внутреннем алфавите. В таких условиях выражения
rank (С) —rank ("0")
и
char(rank ("0")+ 1)
ч
дают независимое от реализации преобразование цифр в их арифметические значения.
Подмножества литер
Имеются две стандартные нелокальные процедуры, определяющие два подмножества алфавита литер:
Boolean procedure digit (С); character С;
эта процедура вырабатывает значение true, когда значение С является цифрой, и
Boolean procedure letter (С); character С;
эта процедура доставляет значение true, когда значение С является буквой.
Тексты
Текстовое значение (значение типа text) — это упорядоченная последовательность (быть может, пустая) внутренних литер. Количество литер в такой последовательности называется «длиной» текста. Непустое текстовое значение является или «текстовым объектом», или частью более длинной последовательности литер, являющейся текстовым объектом. Текстовая ссылка ссылается на текстовое значение. Некоторые свойства текстовых ссылок представлены процедурами, к которым можно обращаться дистанционными идентификаторами.
Начальные значения
Каждая декларированная переменная получает начальное содержимое (значение) в момент входа в блок, в котором эта переменная локальна. Начальное значение определяется типом переменной:
Real 0
Дата добавления: 2015-07-15; просмотров: 60 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Компонент MainMenu - главное меню формы. | | | Объектные выражения |