( ).
Составное выражение представляет собой последовательность простых выражений, разделенных символами операций.
Числовые константы делятся на десятичные и шестнадцатиричные целые, вещественные в формате с фиксиро¬ванной точкой и вещественные в экспоненциальном формате. Чтобы отличить запись целого шестнадцати¬ричного числа от десятичного, перед числом ставится знак доллара “$”, например: $12, $ABCDEF. Вещественное число в формате с фиксированной точкой записывается в виде: целая часть, точка, дробная часть (без пробелов). В экспоненциальном формате число предварительно представляется в виде m*10n, где m называется мантиссой, а n – порядком числа (n – целое). Сначала записывается мантисса в формате с фиксированной точкой, затем символ “E” и затем порядок в формате целого числа. Примеры числовых констант: 1, 55, 999999, 3.1415926, 2.71828, 0.5E-3.
Строковая константа – это произвольная последовательность символов, заключенная в кавычки: ‘Текст’. Если сама константа содержит кавычки, то для правильного ее задания кавычки внутри константы должны быть удвоены: запись ’Переведите слово ’’function’’ на русский язык’ означает текст: Переведите слово ’function’ на русский язык. Вместо записи символа внутри текстовой константы можно употреблять комбинацию символа # (решетки) и кода символа. Например, вместо ‘c’ можно написать #99, а вместо ‘S’ можно написать #83. В итоге может получиться запись типа ‘код_символа’#101’or’#80.
Конструктор множества – это список элементов множества, заключенный в квадратные скобки. Элементы множества отделяются друг от друга запятыми. Допускается запись диапазона вместо элемента: [1,3..7,7,13..21,90], [white..black, red], [ ].
Составное выражение – это несколько простых выражений , между которыми располагаются знаки операций. Знак операции может стоять и перед всем выражением. Операции бывают унарные и бинарные. Унарные опрации имеют один операнд, который располагается после знака операции. Бинарные операции имеют два операнда, и символ операции располагаются между операндами. Если в составном выражении более двух компонентов, то возникает проблема, какие операции выполнять вначале. Для того, чтобы разрешить возникающие при этом противоречия, вводится понятие старшинства или приоритета операций. Операции с большим приоритетом выполняются раньше, операции с одинаковым приоритетом выполняются слева направо.
Все операции согласно их старшинству разбиты на четыре группы:
1. @ - переход от значения к указателю на значение;
not - логическое отрицание;
2. * - умножение целых и вещественных чисел, пересечение множеств;
/ - деление чисел;
div - деление целых чисел с остатком;
mod - остаток от деления целых чисел;
and - конъюнкция логических значений (и);
shl - сдвиг двоичного представления целого числа влево;
shr - сдвиг двоичного представления целого числа вправо;
3. + - сложение целых и вещественных чисел, объединение множеств, конкатенация строк;
- - вычитание целых и вещественных чисел, дополнение множеств:
or - дизъюнкция логических значений (или);
xor - эксклюзивная дизъюнкция логических значений (исключающее или);
4. = - проверка равенства;
- проверка неравенства;
> - больше;
>= - больше или равно;
in - элемент содержится в множестве.
Следует отметить, что один знак может использоваться для обозначения различных операций. Противоречия здесь не возникает потому, что все переменные и константы строго типизированы и из контекста операции (по типу операндов) транслятор автоматически узнает, какая операция имеется в виду.
8th Май 2011
|
Теги:
|