Переход к более императивной точке зрения

Переход к более императивной точке зрения

Переход от АТД к классам включает существенное изменение стилистики: введение изменений и императивных аргументов.

Как вы помните, спецификация абстрактных типов данных не описывает явно изменений, т. е., используя термин из теоретической информатики, является аппликативной. Все свойства АТД моделируются как математические функции, это относится к конструкторам, запросам и командам. Например, операция вталкивания для стеков моделируется функцией-командой:

put: STACK [G] ? G STACK [G],

задающей операцию, которая возвращает новый стек, а не изменяет существующий.

Классы отказываются от чисто аппликативной точки зрения на функции и переопределяют команды как операции, которые могут изменять объекты. Например, операция put будет определена как процедура, которая получает некоторый элемент типа G (формальный параметр) и модифицирует стек, вталкивая новый элемент на его вершину, не создавая нового стека.

Такое изменение стиля отражает императивные настроения, преобладающие при разработке ПО. (В качестве синонима слова "императивный" иногда используется термин "операционный"). При этом потребуется изменять аксиомы АТД. Аксиомы стеков A1 и A4, которые имели вид

[x]. (A1) item (put (s, x)) = x

[x]. (A4) not empty (put (s, x))

превратятся в императивной форме в предложение, называемое постусловием программы (routine postcondition), вводимое ключевым словом ensure (обеспечивает):

put (x: G) is

-- Втолкнуть x на вершину стека

require

... Предусловие (если таковое имеется) ...

do

... Соответствующая реализация (если известна) ...

ensure

item = x

not empty

end

Здесь постусловие объясняет, что результатом вызова программы put значение item будет равно x (втолкнутому элементу), а значение empty будет ложно.

Другие аксиомы спецификации АТД приводят к утверждению, известному как инвариант класса. Постусловия, инварианты класса и другие перевоплощения предусловий и аксиом АТД мы рассмотрим во время обсуждения утверждений и проектирования по контракту (п. 11.10 "Связь с АТД").

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

С точки зрения программиста

Из книги автора

С точки зрения программиста В 1970 году С. С. Хассон (S. S. Husson) определил термин «архитектура компьютера» как «характеристики (вычислительной) системы с точки зрения программиста»[ 5 ]. Архитектура включает в себя набор команд, типы данных, операции ввода-вывода и другие


1.3 ОБЗОР С ТОЧКИ ЗРЕНИЯ ПОЛЬЗОВАТЕЛЯ

Из книги автора

1.3 ОБЗОР С ТОЧКИ ЗРЕНИЯ ПОЛЬЗОВАТЕЛЯ В этом разделе кратко рассматриваются главные детали системы UNIX, в частности файловая система, среда выполнения процессов и элементы структурных блоков (например, каналы). Подробное исследование взаимодействия этих деталей с ядром


8.11 Переход на более интеллектуальные протоколы

Из книги автора

8.11 Переход на более интеллектуальные протоколы Для перехода на более интеллектуальные протоколы были сделаны два улучшения. Как и RIP, лицензированный протокол IGRP компании Cisco использует вектор расстояния, однако в нем устранены недостатки RIP. OSPF и IS-IS являются


3.1. Анализ AC Sweep[16] в одной точке

Из книги автора

3.1. Анализ AC Sweep[16] в одной точке Для начала исследуем схему, состоящую из резистора R=100 Ом, конденсатора С=2 мкФ и источника переменного напряжения с амплитудой U=1 B и f=2 кГц.Шаг 1 Начертите эту электросхему с помощью редактора проектирования SCHEMATICS. В качестве источника


Pocket PC с точки зрения программиста

Из книги автора

Pocket PC с точки зрения программиста Windows CE и Pocket PCДля программиста общение с устройством – это прежде всего общение с его операционной системой. Даже те программисты, которые пишут драйверы на языке ассемблера, машинных кодах или языке C, все равно пишут их для определенной


ГЛАВА 8. Планирование по точке заказа

Из книги автора

ГЛАВА 8. Планирование по точке заказа Планирование по точке заказа — это альтернативный метод планирования укрупненного бизнес-процесса закупки.Данный метод планирования использовался задолго до появления компьютеров. А в наше время этот метод реализуется


XML-документы с точки зрения спецификации

Из книги автора

XML-документы с точки зрения спецификации Теперь, когда мы разобрали практически все структурные единицы XML, осталось определить стандартным образом синтаксис для самих XML-документов. Им соответствует продукция document:[1] document ::= prolog element MiscИтак, XML-документ состоит из пролога,


Как подключиться к точке доступа?

Из книги автора

Как подключиться к точке доступа? Убедитесь, что беспроводной адаптер на нетбуке включен. Щелкните на значке сети в области уведомлений панели задач.Нетбук отображает сеть, созданную точкой доступа, среди беспроводных соединений. Щелкните кнопкой мыши на значке вашей


В ПОЛЕ ЗРЕНИЯ

Из книги автора

В ПОЛЕ ЗРЕНИЯ Часто бывает так, что новость - это лишь вершина айсберга, тогда как для понимания полной картины происходящего надо знать множество мелких подробностей. В этом разделе наши авторы вместе с известными экспертами вскрывают подоплеку


Кибервойна с точки зрения классики жанра

Из книги автора

Кибервойна с точки зрения классики жанра Автор: Ваннах МихаилТо, что человечество вступило в эпоху кибервойн, знают уже не только читатели "КТ", но и широкая публика, вскормленная среднебюджетными технотриллерами. Как же соотносится новомодное - всего-то