Mis on üldine programmeerimine?

Üldine programmeerimine on üks populaarseid arvutiprogrammeerimise tüüpe, mis on kirjutatud nii, et see loob võimalikult tõhusa koodi, võimaldades samal ajal koodil rakendada võimalikult paljudes olukordades, ilma et oleks vaja algset koodi muuta. Kui kood on kirjutatud, saab see täita ainult täpselt neid funktsioone, mille jaoks see oli kirjutatud. Kasutades üldist programmeerimist koodide loomiseks, mis töötavad paljudes erinevates olukordades, täites samal ajal sama põhifunktsiooni, saavad programmeerijad kasutada erinevates programmides ühte koodi, ilma et peaks kunagi originaalis muudatusi tegema.

1970. aastatel debüteeris üldine programmeerimine programmeerimiskeeltes Ada ja CLU. Varsti pärast seda hakkasid teised programmeerimiskeeled, nagu Java ja C++, kasutama üldist programmeerimist, et lihtsustada programmeerimiskoodi, võimaldades samas kasutada sama koodi mitmes stsenaariumis. Igal programmeerimiskeelel on selle koodi kasutamiseks konkreetne viis ja selle kirjeldamiseks erinevad terminid. Termineid „üldised”, „mallid” ja „parameetritega tüübid” on mingil või teisel hetkel kasutatud üldise programmeerimise juhtumitele viitamiseks.

Seda tüüpi programmeerimise mõistmiseks on oluline teada programmeerimiskeele tööpõhimõtteid. Kui Paul soovib näiteks kirjutada programmi, mis liidab kaks numbrit kokku, tipiks ta kahe objekti lisamiseks välja arvutikoodi. Seejärel ütles ta arvutile, et need kaks objekti on numbrid ja et lõplik vastus peaks samuti olema arv.

Kuigi programm töötab seni, kuni Paul lisab kaks numbrit, jookseb see kokku, kui ta proovib midagi muud kokku liita. Kui Paul otsustaks lõigu moodustamiseks laused kokku siduda, jookseb programm kokku, sest see leiab tähti, mitte numbreid. Paul sai selle probleemi siiski lahendada, kasutades üldist programmeerimist, et käskida algprogrammil aktsepteerida mitmeid muutujaid – nii numbreid kui tähti – ja seega saab programm luua lauseid või teha liitmisi.

Mitte kõik programmeerimiskeeled ei vaja nende tõhususe tagamiseks üldise programmeerimise kontseptsiooni. Need, kes seda kasutavad, on staatiliselt trükitud keeled. See tähendab lihtsalt, et kood on nii-öelda kivisse raiutud ja seda ei saa programmi töötamise ajal muuta. Sel põhjusel, kui programmeerija määras, et kasutaja sisend on tähtede kujul ja kasutaja sisestas numbri, ei saanud programm seda sisendit kasutada. Seega püüavad programmeerijad ette näha kõiki loogilisi andmetüüpe, mida kasutaja saab sisestada, olgu need siis numbrid, tähed või sümbolid, ja luua programmi, mis saab vastavalt kohandada.