ПЕРЕМЕННЫЕ И МЕСТА: БАЗОВЫЕ ПОНЯТИЯ |
В Caper встроен широкий набор средств организации и управления данными. В основе этих средств понятия переменных и управляемых переменных, названных местами. 'D' - двойное плавающее число (double float) - 8 байт Особое место в CAPER у переменных-мест. Места снабжены средствами управления: блокировки по чтению-записи, разблокировки. Контроль за использованием мест осуществляет виртуальный процессор: всякая попытка не только обращения к содержимому места, а и прочтения состояния места контролируется, и в определенных случаях приводит к формированию программного прерывания. Изначально все места имеют статус "FREE". В процессе выполнения программы места могут получать следующие состояния: WRITE_ONLY - только для записи При этом изменить состояние места, так же как и всесторонне (без ограничений) использовать место может только блок (но не его подблоки), первым установивший ограничивающее состояние, естественно, до установления им состояния "FREE". Доступ к статусу (проверка) из других блоков места осуществить с помощью операции '$': $<имя места> Фактически, это команда виртуальному процессору выбрать статус. Казалось
бы, что нет особой необходимости в определении особой операции, и было бы
достаточным наличие функции среды, возвращающей состояние места. Однако, . . . Подробнее техника использования мест будет описана позже в разделах,посвященных событийным механизмам CAPER и технике компиляции программ. |
ТИПИЗИРОВАННЫЕ ПЕРЕМЕННЫЕ |
В язык Caper 4 включены средства типизации переменных. Тип переменной задается следующими дескрипторами типа: ‘<’[<свойство>] <тип> ‘>’ <свойство> ::= size | memnum | array | as | implant Базовые типы определяются ключевыми словами: <порожденный тип> ::= <имя структуры> | <имя блока прототипа> | <имя internal-блока> Свойства типа определяют применение оператора к типу: size - размер типа; Так, в результате выполнения выражения var := <size int> + 10 переменная var получит значение 14, где 4 – размер int.Описатель типизированной переменной (далее – дескриптор переменной): ‘<’ <тип> ‘>’ ‘[’ [числовой литерал], {, <числовой литерал> . . . } ‘]’ Примеры представления типизированных переменных: <int> [10] arrOfInt - переменная, предназначенная для хранения указания По переменным - указаниям на массивы с определенными границами могут быть построены реальные массивы (см. оператор build). |