- •Государственный комитет Российской Федерации по высшему образованию
- •Синтаксис и семантика языка Словарь и представление
- •Описания и области действия
- •Описания констант
- •Описания типов
- •Описания переменных
- •Выражения
- •Операнды
- •Операции
- •Операторы
- •Лексический анализ Типы лекскем
- •Диаграммы переходов
Операнды
Операндами могут быть выражения, множители. Множитель – идентификатор переменной, константы, элемент булевской матрицы.
Операции
В выражениях синтаксически различаются семь классов операций с разными приоритетами (порядком выполнения).
Старшинство операций:
Знак Операции |
Название операции |
Порядок выполнения | |
NOT |
Логическое отрицание |
Справа налево | |
- |
Унарный минус |
Справа налево | |
AND |
Логическое И |
Слева направо | |
DIV |
Целое от деления |
Слева направо |
|
MOD |
Остаток от деления |
Слева направо | |
SHL |
битовый сдвиг влево |
Слева направо | |
SHR |
битовый сдвиг вправо |
| |
* |
Умножение |
Слева направо |
|
OR |
Логическое ИЛИ |
Слева направо | |
XOR |
Исключающее ИЛИ |
Слева направо | |
+ |
Сложение |
Слева направо | |
- |
Вычитание |
Слева направо | |
< |
Меньше |
Слева направо | |
<= |
Меньше или равно |
Слева направо | |
> |
Больше |
Слева направо | |
>= |
Больше или равно |
Слева направо | |
= |
Равно |
Слева направо | |
<> |
Не равно |
Слева направо |
*) Операции находящиеся в разных группах имеют разные приоритеты, самый высокий приоритет имеет верхняя группа операций
Логические операции – OR, XOR, AND, NOT.
Эти операции применимы к операндам типа BOOLEAN и дают результат типа BOOLEAN.
Операции над булевскими матрицами выполняются аналогично простым булевским операциям, последовательно по строкам над каждым элементом матрицы (сначала операция выполняется для каждого элемента, начиная с первого, первой строки).
Арифметические операции – +, -, *, DIV, MOD, SHL,SHR, и OR, XOR, AND, NOT, которые для типов отличных от BOOLEAN выполняют побитовые операции.
Эти операции применимы к операндам целого типа и дают результат целого типа.
c) Операции отношения – =, <>, <, <=, >, >=
Операции отношения дают результат типа BOOLEAN.
Операнды этих операций должны иметь либо структурно эквивалентный тип, либо совместимый тип.
Операторы
Оператор присваивания: старое значение переменной заменяется новым значением, которое получается в результате вычисления выражения.
Оператор перехода: метка в операторе перехода должна быть предварительно описана и должна встречаться в блоке один раз.
Условный оператор: Вычисляется логическое выражение. Если значение логического выражения «истина», то выполняется оператор, следующий за ключевым словом then, в противном случае выполняется оператор, следующий за ключевым словом else. Если после слова then следует условный оператор, то он должен заключатся в begin – end для избежания неопределенности типа: if <выр> then if <выр> then <оператор> else <оператор>
Оператор цикла:
Выполняются операторы, за ключевым словом repeat.
Вычисляется логическое выражение за ключевым словом until, если выражение истинно, то происходит выход из цикла, если ложно, то повторяется п.1.
Оператор ввода, переменная, указанная в параметрах оператора принимает значение полученное с консоли. Считываемое значение должно быть того же типа, что и переменная указанная в параметрах.
Операторы вывода, если среди параметров встречается выражение, то оно вычисляется, далее список параметров последовательно выводится на консоль.