Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
11.04.2015
Размер:
849.92 Кб
Скачать

6.7.1. Множества, заданные диапазоном (Ranged Set Expressions)

Синтаксис.

ranged_set_expr ::=

{ readonly_integer-value_expr .. readonly_integer-value_expr }

Контекстные условия. Входящие в данную конструкцию выраженияvalue_exprдолжны представлять собойread-onlyвыражения и их максимальный тип должен бытьInt.

Атрибуты. Максимальным типом выраженияranged_set_exprявляетсяIntinfset.

Выражение ranged_set_exprстатически производит чтение из тех переменных, из которых статически производят чтение составляющие его выраженияvalue_expr, и не имеет другого статического доступа.

Семантика. Результирующее воздействие выраженияranged_set_exprзаключается в возвращении множества целых чисел в диапазоне, ограниченном нижней и верхней границами. При этом первое выражениеvalue_exprвычисляется и возвращает нижнюю границуi1, затем вычисляется второе выражениеvalue_exprи возвращает верхнюю границуi2. Результирующее множество содержит все целые числаiтакие, чтоi1ii2. Еслиi1i2, множество пусто.

6.7.2. Множества, заданные перечислением (Enumerated Set Expressions)

Синтаксис.

enumerated_set_expr ::=

{ readonly-opt-value_expr-list }

Контекстные условия. Входящие в данную конструкцию выраженияvalue_exprдолжны представлять собойread-onlyвыражения.

Максимальные типы составляющих выражений value_exprдолжны иметь наименьшую верхнюю границу.

Атрибуты. Максимальным типом выраженияenumerated_set_expr, имеющего в своем составе одно или более выраженийvalue_expr, являетсяt-infset, гдеt– это наименьшая верхняя граница максимальных типов этих составляющих выраженийvalue_expr. Максимальным типом выраженияenumerated_set_expr, не имеющего составляющих выраженийvalue_expr(пустое множество), являетсяt-infset, гдеt– это типовая переменная, представляющая произвольный максимальный тип.

Выражение enumerated_set_exprстатически производит чтение из тех переменных, из которых статически производят чтение составляющие его выраженияvalue_expr, и не имеет другого статического доступа.

Семантика. Результирующее воздействие выраженияenumerated_set_exprзаключается в возвращении множества явно специфицированных значений. При этом результирующее воздействие выраженияenumerated_set_exprвида {value_expr1,…, value_exprn} достигается путем вычисления слева направо значенийviкаждого составляющего выраженияvalue_expri, после чего возвращается значение в виде множества {v1,…,vn}. Если списокvalue_expr‑listотсутствует, возвращается пустое множество.

6.7.3. Сокращенные множественные выражения (Comprehended Set Expressions)

Синтаксис.

comprehended_set_expr ::=

{ readonly-value_expr ½ set_limitation }

set_limitation ::=

typing-list opt-restriction

restriction ::=

readonly_logical-value_expr

Контекстно-независимые расширения. Пустое ограничениеnil‑restrictionпредставляет собой сокращение ограничения ‘•true.

Ограничение ‘• value_expr’ является сокращенной записью ограничения ‘•value_expr  true’.

Контекст и правила видимости. В выраженииcomprehended_set_exprконтекст ограниченияset_limitationрасширяется до выраженияvalue_expr, входящего в состав данного выражения.

Непосредственным контекстом конструкций typing, входящих в состав ограниченияset_limitation, является ограничениеrestriction, входящее в тот же состав.

Контекстные условия. Входящее в состав выраженияcomprehended_set_exprвыражениеvalue_exprдолжно представлять собойread-onlyвыражение.

Входящее в состав ограничения restrictionвыражениеvalue_exprдолжно представлять собойread-onlyвыражение и его максимальный тип должен бытьBool.

Атрибуты. Максимальным типом выраженияcomprehended_set_exprявляетсяt-infset, гдеt– это максимальный тип входящего в его состав выраженияvalue_expr.

Выражение comprehended_set_exprстатически производит доступ к тем переменным и каналам, к которым статически обращаются составляющие его выражениеvalue_exprи ограничениеset_limitation.

Конструкция set_limitation, в которой присутствует ограничениеrestriction, статически производит доступ к тем переменным и каналам, к которым статически обращается данное ограничениеrestriction.

Ограничение restrictionстатически производит чтение из тех переменных, из которых статически производит чтение входящее в его состав выражениеvalue_expr, и не имеет другого статического доступа.

Семантика. Результирующее воздействие выраженияcomprehended_set_exprзаключается в возвращении множества, элементы которого получаются путем вычисления выраженияvalue_exprво всех моделях, удовлетворяющих заданному ограничению.

Для каждой модели из множества моделей, представленного ограничением set_limitation(см. ниже), вычисляется указанное выражениеvalue_expr. Вычисление выраженияcomprehended_set_exprпредставляет собой сходящийся процесс.

Конструкция set_limitationпредставляет некоторое подмножество моделей, которые удовлетворяют определениям, заданным в спискеtyping-list, и для которых выполняется ограничениеrestriction.

Ограничение restrictionвыполняется, если вычисление входящего в его состав выраженияvalue_exprпредставляет собой сходящийся процесс, в результате которого возвращается значениеtrue.

6.8. Выражения, задающие списки (List expressions)

Синтаксис.

list_expr ::=

ranged_list_expr ½

enumereted_list_expr ½

comprehended_list_expr

Соседние файлы в папке ТРПО