Узагальнене програмування

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Узагальнене програмування (англ. generic programming) — парадигма програмування, що полягає в такому описі даних і алгоритмів, який можна застосовувати до різних типів даних, не змінюючи самий цей опис. У тому чи іншому вигляді підтримується різними мовами програмування.

Можливості узагальненого програмування вперше з'явилися в 1970-х роках у мовах CLU і Ada, а потім у багатьох об'єктно-орієнтованих мовах, таких як C++, Java, D і мовах для платформи .NET.

Термін "Узагальнене програмування" вперше було введене Девідом Массером і Олександром Степановим [1], які описували парадигму програмування, яка основана на тому, що типи даних і структури даних є абстрактними і не впливають на конкретну реалізацію алгоритмів, а загальні функції реалізовані з використанням узагальнених формалізованих типів.

Приклад застосування в мові C[ред.ред. код]

Препроцесор мови C підтримує окремі можливості узагальненого програмування. Так, наприклад, функція обміну значень двох об'єктів даних може бути визначена як макрос:

#define SWAP(_a, _b, type) { type _c; _c = _b; _b = _a; _a = _c; }

і використана з програми, наприклад:

#include <stdio.h>
 
#define SWAP(_a, _b, type) { type _c; _c = _b; _b = _a; _a = _c; }
 
int main() {
    int a=1, b=4;
    double c=2.3, d=3.4;
    SWAP(a, b, int);
    printf("%i %i\n", a, b);
    SWAP(c, d, double);
    printf("%f %f\n", c, d);
    return 0;
}

Див. також[ред.ред. код]

Посилання[ред.ред. код]


  1. Musser, Stepanov