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