7. O‘rnatilgan qism dasturlar Ada tilida aralashgan iboralar qo‘llanilishi yo‘lga qo‘yilmagani uchun, funksiya
konteksti funksiya tomonidan qaytariluvchi qiymatlar tipini aniqlashi mumkin. S++ va
Java tilida aralashgan iboralar qo‘llanilishi yo‘lga qo‘yilgan, shuning uchun,
qaytarilayotgan qiymat tipi hech qanday ahamiyatga ega emas.
Foydalanuvchilar ham qism dasturlarning bir qancha versiyalarini Ada, Java va
C++ tillarida bir xil nom bilan yaratishlari mumkin. Ushbu qism dasturlar bir xil
jarayonni bajarishi shart emasligiga qaramay, ular odatda shuni bajaradilar. Masalan,
aniq bir dastur jamlashning ikki protsedurasiga ehtiyoj sezadi, biri – butun sonli
massivlar uchun, yana biri – o‘zgaruvchan nuqtali sonlar massivi uchun zarur. Ushbu
protseduralarning ikkovi ham SORT deb atalishi mumkin, chunki ularning
parametrlari tiplari turli. Quyidagi Ada tilida keltirilgan dastur skeletida SORT nomli
ikki protsedura mavjud:
procedure MAIN is
type FLOAT_VECTOR is array (INTEGER range <>) of FLOAT;
type INT_VEXTOR is array (INTEGER range <>) of INTEGER;
…
procedure SORT (FLOAT_LIST : in out FLOAT VECTOR;
LOWER_BOUND : in INTEGER;
UPPER_BOUND : in INTEGER) is
…
end SORT;
procedure SORT (INT_LIST : in out INT_VECTOR;
LOWER_BOUND : in INTEGER;
UPPER_BOUND : in INTEGER) is
…
end SORT;
…
end MAIN;
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
236
O‘rnatilgan qism dasturlar turli xil chaqiruvlarga olib kelishi mumkin. Misol
qilib, S++ tilidagi quyidagi kodni ko‘rib chiqamiz:
void fun (float b = 0.0);
void fun();
…
fun ();
Ushbu chaqiruv o‘zgaruvchan va kompilyatsiyada xatolik keltirib chiqaradi.