Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Л-4(EXPRESS) / Конспект лекций.doc
Скачиваний:
84
Добавлен:
16.05.2015
Размер:
567.3 Кб
Скачать

Слайд 41. Определяемый тип (type)

Пояснения

Понятие «определяемый тип» (TYPE) выражает поименованный тип данных языкаEXPRESS, заданный на основе какого-либо другого типа данных. Назначением определяемого типа являетсярасширение выразительных возможностейязыкаEXPRESSза счет создания типа с новыми свойствами. Определяемый тип обязательно задается на основе какого-либо другого типа данных, называемогоисходным типом. В качестве исходного типа могут выступать простой тип, агрегированный тип, другой определяемый тип или составной тип. При этом область значений вновь создаваемого определяемого типа задаетсяна основеобласти значений исходного типа. Она может либо полностью совпадать с областью значений исходного типа, либо являться подмножеством области значений исходного типа.

Слайд 42. Правило области значений определяемого типа

Пояснения

В случае, когда область значений вновь создаваемого определяемого типа является подмножеством области значений исходного типа, на область значений исходного типа должны быть наложены ограничения, выражаемые так называемыми «правилами области значений». В объявлении определяемого типа могут быть заданы несколько правил области значений. Каждое такое правило представляет собой некотороеусловие вхождениязначения из области значений исходного типа в область значений определяемого типа. Таким образом, правило области значений следует рассматривать как своего родафильтр, отсеивающий неподходящие значения. Каждое правило области значений содержит выражение, которое в результате своего вычисления должно дать значение логического типа:FALSE(ложь),TRUE(истина),UNKNOWN(неопределенность) или неопределенное значение «?».

Принцип отбора значений исходного типа, входящих в область значений определенного типа состоит в том, что в выражение каждого правила вместо ключевого слова «SELF» подставляется некоторое значение исходного типа. Значение удовлетворяет правилу, если выражение дает в результате любое значение, кромеFALSE(ложь). Таким образом, значение исходного типа входит в область значений определенного типа в том случае, если ни одно из правил не нарушено, т.е. выражения всех правил дали в результате любое значение, кромеFALSE(ложь).

Структура определяемого типа представлена на примере. Здесь объявляется определенный тип «month» (месяц), представляющий номер месяца. Этот тип задается на основе целочисленного типаINTEGERи накладывает ограничения на его область значений: номер месяца должен быть больше либо равен единице и меньше либо равен двенадцати. Объявление определяемого типа начинается с ключевого словаTYPEи завершается ключевым словомEND_TYPE. После начала объявления типа идет имя типа (в данном случае – «month», т.е. месяц) и указание исходного типа (в данном случае – целочисленный типINTEGER).

Объявление правил области значений типа начинается с ключевого слова «WHERE» и продолжается вплоть до окончания объявления типа. Как уже говорилось, в рамках одного типа могут быть объявлены несколько правил области значений. Каждое правило может иметь метку (которая, впрочем, необязательна), причем эта метка должна быть уникальной в рамках типа. После метки следует выражение, определяющее условие выполнения правила. Это выражение обязательно содержит ключевое слово «SELF», выражающее значение исходного типа, для которого проверяется правило.