В программировании применяются два основных метода абстрагирования.
1. Параметризация обобщает процесс вычислений для различных наборов данных.
Параметрами могут быть не только наборы данных, но также количество значений в них и их типы (для шаблонов функций).
2. Спецификация позволяет абстрагироваться от процесса вычислений,
описанных в теле процедуры. Смысл обращения к данной процедуре становится ясным через анализ
спецификации, а не самого тела процедуры.
Для этого необходимо связать с процедурой комментарий, достаточно информативный, чтобы иметь возможность работы с
ней без анализа тела процедуры. Обычно указывается пара утверждений.
* "требования" - условие применимости процедуры (ограничения на параметры)
* "действие" - условие, являющееся истинным по завершению процедуры (если были выполнены требования).
Пример: ``double sqrt(x)``
Требования: `x>0`
Действие: возвращает приближенное значение квадратного корня из `x`.
--
В C# используется библиотека System.Diagnostics.Contracts для выполнения таких проверок.
В "C++ syntax 2" Г. Саттера после заголовка функции можно указать условия, проверяемые во время выполнения.