Nowsze języki umożliwiają zastosowanie takiego mechanizmu poprzez dopuszczenie przeciążenia nazw.

Przykład w PL/1: DCL A GENERIC (PR1 WHEN(FLOAT), PR2 WHEN(CHAR), PR3 WHEN(FLOAT, CHAR), PR4 WHEN(LABEL));

W powyższym przykładzie wywołanie procedury A spowoduje w rzeczywistości wywołanie jednej z procedur PR1 .. PR4 w zależności od argumentów wywołania procedury A.

Metody wywołania podprogramu Wartościową cechą podprogramu jest możliwość wielokrotnego jego wywołania. Wywołanie podprogramu może być: funkcyjne – w wyrażeniu, do którego podprogram zwraca obliczoną wartość, poprzez nazwę z listą argumentów, np. A=B+Func(C); lub wielokrotne (zagłębione), np. L=Trim(Copy(Delete(‘ Ala ‘,3,1),3)); oczywiście taka forma wywołania dotyczy tylko podprogramów mających cechy funkcji, tzn. zwracających wartość, proceduralne (instrukcja wywołania): poprzez nazwę z listą argumentów, np. Proc(A, 5); – m.in. Pascal, po słowie kluczowym, CALL Proc(A, 5);