Описание тега generic-programming

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

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

Основные идеи общего программирования (GP)

  1. Подъем алгоритма означает нахождение минимальных требований к интерфейсу типа данных, которые позволяют реализовать алгоритм. Обычно это улучшает возможность повторного использования за счет расширения диапазона соответствующих типов данных. Этот процесс уменьшает связывание программных модулей и снижает зависимость от второстепенных аспектов, что обычно приводит к более чистому коду.
  2. Спецификация - это процесс ограничения типов данных, обычно для облегчения более эффективной реализации алгоритма.
  3. Понятие означает интерфейс типа данных, который является объектом процессов подъема и спецификации.
  4. Многоразовый, эффективный код обычно зависит от баланса между подъемом и спецификацией.

Широко известные реализации

  1. Стандартная библиотека шаблонов (STL), созданная пионером GP Александром Степановым.
  2. Дженерики в Java и
  3. Дженерики в.NET

Хотя это и менее известно, первым относительно широко используемым языком программирования, обеспечивающим прямую поддержку общего программирования, был Ada 83.