Подразделы

Другие разделы

Дата и время

02/04/2025 14:09:31

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

printАбстракция и разработка программ

printМетоды абстрагирования

В программировании применяются два основных метода абстрагирования.

  1. Параметризация обобщает процесс вычислений для различных наборов данных. Параметрами могут быть не только наборы данных, но также количество значений в них и их типы (для шаблонов функций).

  2. Спецификация позволяет абстрагироваться от процесса вычислений, описанных в теле процедуры. Смысл обращения к данной процедуре становится ясным через анализ спецификации, а не самого тела процедуры.

Для этого необходимо связать с процедурой комментарий, достаточно информативный, чтобы иметь возможность работы с ней без анализа тела процедуры. Обычно указывается пара утверждений.

  • "требования" - условие применимости процедуры (ограничения на параметры)
  • "действие" - условие, являющееся истинным по завершению процедуры (если были выполнены требования).

Пример: double sqrt(x)
Требования: x>0
Действие: возвращает приближенное значение квадратного корня из x.


В C# используется библиотека System.Diagnostics.Contracts для выполнения таких проверок.

В "C++ syntax 2" Г. Саттера после заголовка функции можно указать условия, проверяемые во время выполнения.

vec: std::vector<int> = ();
insert_at: (where: int, val: int)
    pre( 0 <= where && where <= vec.size() )
    post( vec.size() == vec.size()$ + 1 )
= {
    vec.push_back(val);
}
loading