Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ещё одна методичка по ЛО.doc
Скачиваний:
18
Добавлен:
23.03.2016
Размер:
433.15 Кб
Скачать

1.3.3. Выражения и операторы

При разработке языков главным обоснованием для выбора вводимых в него средств описания данных является необходимость спецификации данных на различных уровнях, чтобы данные можно было разрабатывать сверху вниз, уточняя их на каждом уровне. Такие же соображения применимы и к средствам описания действий. Для разработки программы методом последовательного уточнения требуется, чтобы программа сначала специфицировалась в терминах небольшого числа действий высокого уровня. Каждое действие высокого уровня уточняется затем специфицированием его в терминах действий более низкого уровня. Процесс уточнения продолжается до тех пор, пока вся программа не становится определенной настолько подробно, что она выражается непосредственно на используемом языке программирования.

Для поддержки этой методологии разработки программ язык должен обеспечить конструкции для представления всех обычно встречающихся типов программных структур.

Последовательности операторов, которые описывают единичные действия высокого уровня, должны структурироваться на логически самостоятельные единицы. Эти единицы могут реализовываться как процедуры, функции или блоки в зависимости от той роли, которую исполняет данная единица в программе. На чуть более низких уровнях должны иметься конструкции для спецификации последовательности выполнения действий в программе. Это реализуется операторами управления, которые дают возможность условного выполнения операторов действия. Операторы действия непосредственно задают те действия, которые должна выполнить программа. Наконец, самыми элементарными конструкциями, задающими последовательность выполнения операций над объектами данных, являются выражения. Использование перечисленных средств описания действий позволяет написать программу таким способом, который ясно отображает весь процесс разработки программы сверху вниз.

Требования к средствам описания действий аналогичны тем, которые предъявляются к средствам описания данных.

Программные конструкции должны быть надежны; их смысл должен быть

очевиден и однозначен, чтобы можно было легко понять общую структуру программы. Они должны также обеспечивать достаточную гибкость, чтобы программист мог выразить свой алгоритм просто и эффективно. Эти требования взаимно противоречивы, поэтому приходится идти на определенные компромиссы для их согласования.

Выражение -- это формула для вычисления значения некоторого типа. В общем случае оно представляет собой один или несколько операндов, разделенных знаками операций. Каждый операнд может быть объектом данных или выражением, заключенным в скобки. Вычисление выражения состоит в вычислении операндов и применении указанных операций в порядке, в основном совпадающим с принятым в математике.

────────────────────

П р и м е р 1. 4. Описание переменных и запись выражений с ними:

I.J: integer;

PI: constant real :=3.14159285;

B: boolean;

A: array (1..5) of real;

R: record

K: integer;

d: character;

end record;

.............

I:=I+J*2;

J:=3*(I-J) +R.K;

B:=B and (A(3) < PI ) and (R.D='A');

A(5):=PI**2+A(5);

────────────────────

В примере 1. 4 кроме выражений используется также самый широко используемый оператор действия -- оператор присваивания :=. Слева от знака оператора указывается тот объект данных, которому в качестве значения присваивается значение стоящего справа выражения. В общем случае операторы действия в противоположность выражениям -- это элементы языка, специально предназначенные для изменения среды программы (т.е. всех ее объектов данных), а также для выполнения некоторых вспомогательных действий.

Обычно операторы выполняются последовательно; для этого они записываются в том порядке, в котором должны выполняться. Однако в некоторых языках есть средства, явно задающие последовательность выполнения операторов. Изменение такого порядка осуществляется специальными операторами управления,. Условное выполнение операторов обеспечивается оператором if, который проверяет некоторое условие (или условия) и в зависимости от истинности или ложности его выполняет те или иные операторы. Повторное (циклическое) выполнение операторов возможно с помощью оператора while. Действие этого оператора заключается в повторном выполнении заданных в нем операторов до тех пор, пока истинно заданное условие, при чем условие проверяется перед выполнением операторов.