Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Понятие списка принятые в RSL. Способы определения списков

Читайте также:
  1. C - матрица (по форме напоминает куб) применяется для определения взаимосвязи элементов трех списков одновременно.
  2. I ОПРЕДЕЛЕНИЯ
  3. I. Понятие, правовая природа и значение гражданства
  4. I.Понятие
  5. II. Греческий текст Псалтири, которым пользовался Златоуст и отношение его к существующим спискам переводов 70–ти толковников
  6. II. Исключить «лишнее» понятие
  7. II. Определения

Списком называется последовательность значений одного и того же типа,

например:

<1,3,3,1,5>

<true,false,true>

Для списков допустимо использование отношений = и ≠. Порядок следования

элементов в списке существенен, т.е. списки <1,3,5> и <5,3,1> являются

различными (<1,3,5>≠ <5,3,1>). Кроме того, допускается повторное вхождение элементов в список (как в рассмотренных выше примерах), причем <1,3,3,1,5> ≠ <1,3,5>.

Для описания конечных списков в RSL используется конструкция вида

type_expr*, где type_expr задает тип элементов списка. Например, тип

Bool * описывает любой конечный список (в том числе и пустой) из булевских значений. Конструкция type_exprω задает тип как конечных, так и

бесконечных списков из элементов типа type_expr. Таким образом, для любого типа T, T* является подтипом Tω.

Для списков применяются те же способы определения значений, что и для множеств. Так, значение конечного списка может быть задано путем непосредственного перечисления его элементов. В этом случае значение списка определяется выражением вида 〈v1,...,vn〉, гдеn≥0 и всеvi являются выражениями одного и того же типа, в частности, 〈〉 задает пустой список. Конечный список из последовательных целых чисел можно задать, указав диапазон изменения значений элементов списка, т.е. выражением вида 〈v1..v2〉,

Где v1 и v2 задают соответственно нижнюю и верхнюю границы диапазона,

причем при v1 >v2 список пуст.

Использование такого способа записи иллюстрируют следующие примеры:

〈3..7〉 =〈3,4,5,6,7〉

〈3..3〉 = 〈3〉

〈3..2〉 = 〈〉

Значение списка можно задать также по аналогии с множествами и с

помощью так называемого сокращенного выражения(comprehended list

expression), имеющего вид 〈value_expr |list_limitation 〉. Этот способ

применяется в том случае, когда новый список строится на основе какого-то уже

существующего. Здесьvalue_expr определяет общую формулу для

вычисления значений элементов нового списка, list_limitation задает базовый

список, на основе которого строится данный, с возможным указанием

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

Например, в выражении:

〈2∗n |n in 〈0..3〉〉

базовым является список 〈0..3〉, предикат отбора отсутствует и,

следовательно, в результате вычисления получается список 〈0,2,4,6〉, причем

упорядоченность элементов нового списка полностью определяется порядком

следования элементов в базовом списке. Примером использования предиката для

отбора элементов базового списка может служить выражение:

〈n |n in 〈1..100〉• is_a_prime(n)〉,

где предикатis_a_prime(n) позволяет определить, является лиn простым

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

являются в возрастающем порядке простые числа из диапазона 1.. 100, т.е.

〈2,3,5,7,...,97〉.

Для доступа к какому-либо отдельному элементу списка вRSL

предусмотрено понятие индекса. В качестве индекса используются натуральные

числа, причем индексация элементов списка начинается с1 и для конечных

списков заканчивается числом, равным длине списка. Например:

〈2,5,3〉(2) =5

〈〈2,5,3〉, 〈3〉〉(1) = 〈2,5,3〉

〈〈2,5,3〉, 〈3〉〉(1)(2) = 〈2,5,3〉(2) =5

Значение бесконечного списка может быть задано с помощью аксиом,

определяющих правила формирования списка.


Дата добавления: 2015-08-13; просмотров: 52 | Нарушение авторских прав


Читайте в этой же книге: Сценарий обмена сигналами ( междугородный вызов) ( абонент свободен, разъединение от АМТС) | Многочастотная сигнализация Импульсный челнок. | Краткая характеристика и основные свойства SDL; 31) Архитектура SDL-модели. | Виды описания языка базовых протоколов | Конструкция и символы SDL | Функциональное программирование | ОО отладка в среде одного языка | Спецификация программ на языке RSL | Логика в языке RSL | Описание функций языка RSL в разных стилях; 56) Описание констант.Явный стиль описаний функций; 57) Аксиоматическое описание функций. Неявный стиль описания функций |
<== предыдущая страница | следующая страница ==>
Использование языка MSC и его особенности.| Виды спецификаций

mybiblioteka.su - 2015-2024 год. (0.005 сек.)