Главная » Просмотр файлов » Языки и методы формальной спецификации

Языки и методы формальной спецификации (1158803), страница 10

Файл №1158803 Языки и методы формальной спецификации (Языки и методы формальной спецификации) 10 страницаЯзыки и методы формальной спецификации (1158803) страница 102019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 10)

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

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

Синтаксис.

list_expr ::=

ranged_list_expr ½

enumereted_list_expr ½

comprehended_list_expr

6.8.1. Списки, заданные диапазоном (Ranged List Expressions)

Синтаксис.

ranged_list_expr ::=

integer-value_expr .. integer-value_expr 

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

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

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

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

6.8.2. Списки, заданные перечислением (Enumerated List Expressions)

Синтаксис.

enumerated_list_expr ::=

 opt-value_expr-list 

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

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

Максимальным типом выражения enumerated_list_expr, не имеющего в своем составе выражений value_expr (пустой список), является t, где t – это типовая переменная, представляющая произвольный максимальный тип.

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

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

6.8.3. Сокращенные выражения для списков (Comprehended List Expressions)

Синтаксис.

comprehended_list_expr ::=

 value_expr ½ list_limitation 

list_limitation ::=

binding in readonly_list-value_expr opt-restriction

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

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

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

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

В конструкции list_limitation максимальным контекстным типом связывания binding является t, где tw – это максимальный тип входящего в состав данной конструкции выражения value_expr.

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

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

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

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

По ограничению list_limitation список моделей строится следующим образом. Входящее в состав данного ограничения выражение value_expr возвращает некоторый список. Затем этот список просматривается слева направо, и каждый его элемент сопоставляется со связыванием binding для получения набора определений. Если для модели (она в точности одна), удовлетворяющей полученным определениям, выполняется ограничение restriction, то данная модель включается в результирующий список моделей на соответствующую позицию.

6.9. Выражения, задающие отображения (Map expressions)

Синтаксис.

map_expr ::=

enumereted_map_expr ½

comprehended_map_expr

6.9.1. Отображения, заданные перечислением (Enumerated Map Expressions)

Синтаксис.

enumerated_map_expr ::=

[ opt-value_expr_pair-list ]

value_expr_pair ::=

readonly-value_expr ↦ readonly-value_expr

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

Составляющие пары value_expr_pair выражения value_expr должны представлять собой read-only выражения.

Атрибуты. Максимальным типом выражения enumerated_map_expr, имеющего в своем составе одну или более пар value_expr_pair, является t1 t2, где t1 – это наименьшая верхняя граница максимальных типов доменов и t2 – наименьшая верхняя граница максимальных типов областей значения этих пар value_expr_pair.

Максимальным типом выражения enumerated_map_expr, не имеющего в своем составе выражений value_expr (пустое отображение), является t1 t2, где t1 и t2 – это типовые переменные, представляющие произвольные максимальные типы.

Максимальным типом домена и максимальным типом области значения пары value_expr_pair являются максимальные типы первого и второго составляющего эту пару выражения value_expr соответственно.

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

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

Семантика. Результирующее воздействие выражения enumerated_map_expr заключается в возвращении отображения явно специфицированных пар. При этом результирующее воздействие выражения enumerated_map_expr вида [value_expr_pair1,…, value_expr_pairn] состоит в вычислении слева направо пар значений (v1, v2) для каждой пары value_expr_pairi, после чего возвращается значение в виде отображения, содержащего все эти пары. Результирующее воздействие пары value_expr_pair заключается в вычислении значения v1 первого выражения value_expr, затем значения v2 второго выражения value_expr, после чего возвращается пара (v1, v2). Если конструкция value_expr_pair-list отсутствует, возвращается пустое отображение.

6.9.2. Сокращенные выражения для отображений (Comprehended Map Expressions)

Синтаксис.

comprehended_map_expr ::=

[ value_expr_pair ½ set_limitation ]

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

Атрибуты. Максимальным типом выражения comprehended_map_expr является t1 t2, где t1 – это максимальный тип домена и t2 –максимальный тип области значения входящей в данное выражение пары value_expr_pair.

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

Семантика. Результирующее воздействие выражения comprehended_map_expr заключается в возвращении отображения, пары которого получаются путем вычисления входящей в это выражение конструкции value_expr_pair во всех моделях, удовлетворяющих заданному ограничению. Для каждой модели из множества моделей, представленного ограничением set_limitation, вычисляется пара value_expr_pair. Если процесс вычисления указанной пары value_expr_pair сходится, результирующее значение пары включается в искомое отображение. Если вычисление такой пары не является сходящимся процессом, оно не вносит никакой пары в искомое отображение. Вычисление выражения comprehended_map_expr представляет собой сходящийся процесс.

6.10. Аппликативные выражения (Application Expressions)

Синтаксис.

application_expr ::=

list_or_map_or_function-value_expr actual_function_parameter-string

actual_function_parameter ::=

( opt-value_expr-list )

Контекстно-независимые расширения. Любое аппликативное выражение application_expr может быть разложено в выражение вида value_expr1( value_expr2 ).

Аппликативное выражение application_expr вида:

value_expr actual_function_parameter1 … actual_function_parametern

где n > 1, является сокращенной записью выражения:

(…( value_expr actual_function_parameter1 )…) actual_function_parametern

Аппликативное выражение application_expr вида value_expr() представляет собой сокращенную запись выражения value_expr(()).

Аппликативное выражение application_expr вида:

value_expr (value_expr1,…, value_exprn)

где n > 1, является сокращенной записью выражения:

value_expr ((value_expr1,…, value_exprn))

Характеристики

Тип файла
Документ
Размер
776,5 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6476
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее