Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
221
Bu Python nomidagi qism dastur sarlavhasi hisoblanadi. Ruby deb ataluvchi
qism dastur sarlavhasi ham “Def” bilan boshlanadi. Javascript qism dastur sarlavhasi
esa « function» bilan boshlanadi.
S dasturlash tilida funksiya sarlovhasi quyidagicha nomlanishi mumkin:
Void adder( parametrlari)
Void so‘zi bu sarlavhasini ko‘rsatadi ya’ni qism dastur orqaga qaytmasligi
uchun belgilanadi.
Qism dastur tanasi uning harakatini belgilaydi. S tilida asosiy tillarda ( masalan
Javascript ) qism dastur tanasi qo‘shtirnoq bilan ajratiladi. Ruby da esa qism dastur
tanasi “end” termini bilan yoziladi. Operatorlar tarkibida ya’ni
Python funksiyasi
tanasida nazarda tutilgan operator va tananing ohiridagi operator nazarda
tutilmaydi.
Python
funksiyasi
hususiyatlaridan
biri
boshqa
dasturlash
tillari
funksiyalaridan farqi def operator so‘zi bilan yoziladi. Qachonki def operatori
bajarilsa, berilgan nom berilgan funksiya tanasiga tasdiqlanadi. DEF funksiyasi
bajarilgunga qadar, funksiyani nomlash mumkin emas. Quyidagi misolda ko‘rishimiz
mumkin:
if...
deffun(...):
...
else
deffun(...):
...
Agar keyingi punkt bajarilagn bo‘lsa, funksiyaning
boshqa versiyasida
nomlanishi mumkin, lekin bu versiyada qayta nomlanmaydi. Agar keyingi qator yana
tanlansa , funksiyaning bu versiyasida nomlash mumkin lekin bir banddan
keyingisida mumkin emas.
Rybu qism dasturining usullari boshqa dasturlash tillaridan farq qiladi. Rybu
usullari asosan belgilangan sinflarda beligilanadi, bundan tashqari belilangan sinf
tashqarisida
ham belgilanishi mumkin, bu holda ular ildiz ob’ekt usullari bilan
ko‘riladi. Bunday usullar qabul qiluvchi ob’ektdan tashqari deb ataladi, xuddi S yoki S
++ kabi. Agar Rybu usullari ob’ektdan tashqari deb atalsa, Self deb qabul qilinadi.
Agar sinfda metod bo‘lmasa, sinf ichidan izlanadi.
Lue funksiyasi ham anonoimlar hisoblanadi, garchi
ularning nomlari sintaksis
yordamida paydo bo‘lgan bo‘lsa ham. Misol uchun kub funksiyaning belgilangan
ta’riflarini ko‘rib chiqamiz.
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
222
function cube(x) return x * x * x end
cube = function (x) return x * x * x end
Birinchi kelishilgan sintaksis ikkinchi aniq bezalgan nomsiz funksiyani shakli
hisoblanadi.
Qism dasturlarning qisqacha parametrlari raqamli
va rasmiy parametrlar
turlarini o‘z ichiga oladi. Qism dasturning protakoli qisqacha parametrlarga
qo‘shimcha ravishda qaytib kelgan turi uchun qo‘shimcha hisoblanadi. Dasturlash
tillarida qism dasturlash turlari bor, bu turlar
qism dasturning protakolida
belgilanadi.
Qism dastur e’lon qilishlari huddi ta’riflar kabi hisobga olinadi. Parallel
o‘zgaruvchan ta’riflar va e’lon qilishlar shakli S da qaysiki e’lon qilishlar ma’lumot
turlarini aniqlashda ammo o‘zgaruvchan turlarini aniqlashda emas. Qism dastur
e’lon qilishlari qism dastur protakoli bilan taminlanadi lekin ularning tanasini o‘z
ichiga olmaydi. Ular kerakli tillarda qaysiki qism dasturlarda ruhsat berilmaydigan.
Ikkala ya’ni o‘zgaruvchan voqealar va qism dasturlar, e’lon qilishlar dasturning statik
turi uchun tekshirilishi kerak. Qism dasturlarda,
parametrlarning bu turlari
tekshirilishi kerak. Yuqorida ko‘rib o‘tilgan funksiya e’loni S va S++ dasturlash tillarida
ko‘p uchraydi va bu prototiplar deb ataladi. Bunday e’lon qilishlar odatda bosh
fayllarda joylashtiriladi.
Ko‘pchilik boshqa tillarda ( S va S++ dan tashqari) qism dastur e’lon qilishlari
kerak emas, chunki ular nomlanishidan oldin qism dasturlarni belgilash talab
qilinmaydi.