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

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

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

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

Максимальным типом Char является Char.

Семантика. Тип type_literal представляет предопределенный тип.

Тип Unit имеет единственное значение ().

Значениями типа Bool являются булевские константы true и false.

Значениями типа Int являются целые числа (…, -2, -1, 0, 1, 2, …).

Литерал Nat является сокращенной записью выражения, задающего следующий подтип {½ i : Int • i  0 ½}.

Значениями типа Real являются вещественные числа (…, -4.3, …, 12.23, …).

Значениями типа Char являются ASCII символы в одинарных кавычках ('a', 'b', …).

Литерал Text является сокращенной записью типового выражения Char*.

5.3. Имена (Names)

Контекстные условия. В типовом выражении type_expr, являющимся именем name, это имя name должно представлять некоторый тип.

Атрибуты и семантика описаны в разделе 10.

5.4. Декартово произведение типов (Product type expressions)

Синтаксис.

product_type_expr ::=

type_expr-product2

Терминология. Декартово произведение – это значение вида (v1,…,vn).

Длиной декартова поризведения типов product_type_expr называется количество составляющих его типовых выражений type_expr.

Атрибуты. Максимальным типом выражения product_type_expr вида type_expr1 ´´ type_exprn является декартово произведение t1 ´ … ´ tn, где t1, …, tn являются максимальными типами соответственно выражений type_expr1, …, type_exprn.

Семантика. Декартово произведение типов product_type_expr вида type_expr1 ´´ type_exprn представляет тип всех декартовых произведений вида (v1,…,vn), где тип каждого vi представлен выражением type_expri.

5.5. Множественные типы (Set type expressions)

Синтаксис.

set_type_expr ::=

finite_set_type_expr ½

infinite_set_type_expr

finite_set_type_expr ::=

type_expr-set

infinite_set_type_expr ::=

type_expr-infset

Терминология. Множество – это, возможно, пустой неупорядоченный набор различных значений одного и того же типа.

Атрибуты. Максимальным типом выражения set_type_expr вида type_exprset или type_expr-infset является t-infset , где t представляет собой максимальный тип выражения type_expr.

Семантика. Множественный тип, определяемый типовым выражением set_type_expr, представляет тип из подмножеств множества значений, тип которых представлен входящим в это выражение type_expr. Если в качестве типового оператора используется -set, то данный тип содержит все конечные подмножества. Если типовым оператором является -infset, то соответствующий множественный тип содержит все (конечные и бесконечные) подмножества.

Множество характеризуется своими элементами.

5.6. Типы списки (List type expressions)

Синтаксис.

list_type_expr ::=

finite_list_type_expr ½

infinite_list_type_expr

finite_list_type_expr ::=

type_expr*

infinite_list_type_expr ::=

type_expr

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

Атрибуты. Максимальным типом выражения list_type_expr вида type_expr* или type_expr является t, где t представляет собой максимальный тип выражения type_expr.

Семантика. Выражение list_type_expr представляет тип списков значений, тип которых определяется входящим в это выражение type_expr. Если в качестве типового оператора используется *, то данный тип содержит все конечные списки. Если типовым оператором является w, то соответствующий тип содержит все (конечные и бесконечные) списки.

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

Список характеризуется множеством индексов и эффектом своего применения к элементам данного множества индексов.

5.7. Типы отображения (Map type expressions)

Синтаксис.

map_type_expr ::=

type_expr type_expr

Терминология. Отображение можно рассматривать как (возможно, пустой) набор пар (v1, v2), где v1 - это некоторое значение из домена отображения, v2 - некоторое значение из области значений отображения и v1 отображается в v2. Доменом (областью определения) отображения называется множество значений v1, для каждого из которых существует некоторое значение v2, такое что пара (v1, v2) входит в данное отображение. Областью значений отображения является множество значений v2, для каждого из которых существует некоторое значение v1, такое что пара (v1, v2) входит в данное отображение.

Атрибуты. Максимальным типом выражения map_type_expr вида type_expr1 type_expr2 является t1 t2, где t1 и t2 представляют собой максимальные типы выражений type_expr1 и type_expr2 соответственно.

Семантика. Типовое выражение map_type_expr представляет тип всех отображений, доменом и областью значений каждого из которых являются соответственно некоторое подмножество множества значений типа, представленного первым выражением type_expr, и некоторое подмножество множества значений, тип которых представлен вторым выражением type_expr.

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

Отображение характеризуется доменом и эффектом своего применения к элементам данного домена.

5.8. Функциональные типы (Function type expressions)

Синтаксис.

function_type_expr ::=

type_expr function_arrow result_desc

function_arrow ::=

½

result_desc ::=

opt-access_desc-string type_expr

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

  • вернуть значение другого типа (тип результата);

  • осуществить доступ к переменным посредством чтения из них или записи в них;

  • осуществить доступ к каналам посредством ввода или вывода по этим каналам.

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

type_expr1 opt-access_desc-string type_expr2

или:

type_expr1  opt-access_desc-string type_expr2

является t1 oads t2, где t1 и t2 представляют собой максимальные типы выражений type_expr1 и type_expr2 соответственно и oads задает описание статического доступа opt-access_desc-string.

Семантика. Выражение function_type_expr задает тип функций, переводящих тип параметра, представленный выражением type_expr, в тип результата, представленный выражением type_expr конструкции result_desc. Описания доступа access_desc конструкции result_desc специфицируют, к каким переменным и каналам может осуществляться доступ при применении функций. В зависимости от значения метапеременной function_arrow функции являются частично вычислимыми или всюду вычислимыми, как описывается ниже.

  • Частично вычислимые (partial) функции

Выражение function_type_expr вида:

type_expr1 opt-access_desc-string type_expr2

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

  • осуществляется только доступ к переменным и каналам, описанным в конструкции opt-access_desc-string;

  • если вычисление выражения завершается (возможно, после выполнения ряда взаимодействий), то результирующее значение принадлежит максимальному типу второго выражения type_expr;

  • если вычисление выражения представляет сходящийся процесс (is convergent) и x принадлежит типу, представленному первым выражением type_expr, то результирующее значение принадлежит типу, представленному вторым выражением type_expr.

Всюду вычислимые (total) функции

Выражение function_type_expr вида:

type_expr result_desc

представляет собой краткую запись выражения:

{½ f : type_expr result_desc •  x : type_expr • f(x) post true ½}

которое обеспечивает, что f и x не являются свободными переменными выражений type_expr и result_desc.

Это означает, что выражение function_type_expr вида:

type_expr1 opt-access_desc-string type_expr2

определяет тип всюду определенных функций из типа, представленного первым выражением type_expr, в тип, представленный вторым выражением type_expr. Этот тип содержит те функции, принадлежащие типу:

type_expr1 opt-access_desc-string type_expr2

которые удовлетворяют следующему ограничению: для любой такой функции f и для любого x, принадлежащего типу, представленному первым выражением type_expr, эффект от применения функционального выражения f(x) в любом состоянии представляет собой сходящийся процесс.

5.9. Подтипы (Subtype Expressions)

Синтаксис.

subtype_expr ::=

{ single_typing pure-restriction }

Контекст и правила видимости. Контекстом указания типа single_typing является ограничение restriction.

Контекстные условия. Ограничение restriction должно быть представлять собой чистое выражение.

Атрибуты. Максимальным типом выражения subtype_expr является максимальный тип входящего в это выражение указания типа single_typing.

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

5.10. Типовое выражение в скобках (Bracketed Type Expressions)

Синтаксис.

bracketed_type_expr ::=

( type_expr )

Атрибуты. Максимальным типом выражения bracketed_type_expr является максимальный тип входящего в него выражения type_expr.

Семантика. Выражение bracketed_type_expr представляет тот же тип, что и типовое выражение type_expr.

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

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

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

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