- •Лекция 3. Основные элементы языка Caché Object Script
- •1. Переменные
- •Основное назначение Глобал - предоставление доступа к сохраненным объектам прбд.
- •2. Операторы и выражения
- •Оператор проверки по шаблону
- •Выражение - совокупность простых выражений, соединенные унарными или бинарными операндами, что дает конечное значение.
- •Представление чисел и неявное преобразование типов данных
Выражение - совокупность простых выражений, соединенные унарными или бинарными операндами, что дает конечное значение.
Обработка выражений играет в Cache ObjectScript совершенно особую роль.
Выражение — это синтаксический элемент Cache ObjectScript, дающий значение. Примером выражения может быть умножение результата, возвращаемого пользовательской функцией, на значение глобальной переменной — например, $$Fun(a) * ^G(1, 2).
Выражение является совокупностью так называемых простейших выражений и унарных либо бинарных операторов. Под простейшим выражением понимается элементарное выражение, которое более невозможно разбить на несколько выражений. Взятые в скобки выражения также представляют собой простейшие выражения.
Таблица 4 описывает встречающиеся в Cache ObjectScript простейшие выражения.
Таблица 4. Простейшие выражения, определенные в Cache ObjectScript.
Простейшее выражение |
Пояснение |
Пример |
<glvn> |
локальная или глобальная переменная |
^G(1, 2) |
<svn> |
системная переменная |
$Horolog |
<function> |
функция |
$Length(a) |
<exfunc> |
пользовательская функция |
$$Х(1) |
<exvar> |
пользовательская переменная-функция |
$$Н |
<numlit> |
числовой литерал |
1.07 |
<strlit> |
строковый литерал |
"abc" |
<ssvn> |
структурированная системная переменная |
^$Routine(name, "DAT") |
(<expr>) |
выражение в скобках |
($$F1(x1)_$$F2(x2)) |
Правила, по которым обрабатываются выражения, достаточно просты и недвусмысленны. Они включают в себя три следующих этапа:
Вычисление левого простейшего выражения.
Вычисление правого простейшего выражения и проведение операции.
Движение направо и повторение этапа 2 в случае необходимости. Это означает ни что иное, как отсутствие обычно имеющегося приоритета отдельных операторов. Все бинарные операторы выполняются последовательно слева направо. Следовательно, 3 + 4 * 5 дает в результате 35; путем соответствующего заключения в скобки получают математически корректный результат 3 + (4 * 5) равный 23.
Унарные операторы (это знаки «+» и «-», и логическое отрицание «'») обрабатываются, наоборот, справа налево. Это означает, что сначала вычисляется простейшее выражение (например, функция) и далее выполняется унарная операция.
То, что в первый момент кажется помехой, вместе с неявной интерпретацией типов (см. также следующий раздел) оказывается мощным инструментом, на котором с наслаждением исполняет свою партию опытный программист Cache. Так, например, выражение «j # 4 = 0 + 28» отображает количество дней в феврале. При этом переменная j представляет год между 1901 и 2099. При делении на четыре високосный год делится без остатка, сравнение с 0 дает в результате (логическую) 1, которая суммируется с числом 28.
За исключением трех случаев, коротко описанных далее, выражения могут содержать произвольное количество пробелов.
Set¬sum = х + у + z, mue = sum/3
|
Символ «¬» представляет здесь ровно один пробел, который должен разделять команду и ее первый аргумент. Нужно подчеркнуть, что команда без аргументов всегда должна отделяться от следующей минимум двумя пробелами (или быть последней в строке).
Имена переменных и программ, включая метки, не могут содержать пробелы.
Числовые константы также не могут содержать пробелов.
