Programming Paradigms nima?
Dasturlash paradigms - bu dasturlarni loyihalash va ma'lum bir vazifani bajarish yoki har qanday muammoni hal qilish uchun ma'lum bir yondashuvdan keyin mavjud bo'lgan barcha vositalardan foydalangan holda amalga oshiriladigan usul yoki strategiya.
Bu dasturiy ta'minotni qanday loyihalash, tartibga solish va bajarish kerakligini belgilaydigan qoidalar va tamoyillar to'plami.
Imperative programming - ma'lum bir natijaga erishish uchun zarur bo'lgan aniq qadamlarni belgilash uchun kod yoziladigan dasturlash uslubi.
- Qachon qilish kerakligi va buni qanday qilish kerakligi to'g'risida dastur buyruqlarini aytasiz.
- Imperativ dasturlash tillariga misollar:
Java, C, Pascal, Python, Ruby, Fortran, PHP,Kotlin.....
func sumOfEvenNumbers(upTo n: Int) -> Int {
var sum = 0
for i in 1...n {
if i % 2 == 0 {
sum += i
}
}
return sum
}
print(sumOfEvenNumbers(upTo: 10)) // Output: 30
Declarative programming - bu natijaga erishish uchun zarur bo'lgan qadamlarni ko'rsatmasdan, kerakli natijani tavsiflash uchun kod yoziladigan dasturlash uslubi.
Declarative dasturlash qanday hisoblashni bildirmaydi, faqat qanday natija so'ralishini bildiradi.
Boshqacha qilib aytganda, declarative kod qanday sodir bolish kerakligidan ko'ra, nima bo'lish kerakligiga e'tibor qaratadi.
SQL, Miranda, Prolog, Lisp, Many markup languages (e.g., HTML) deklarativ dasturlash misollaridir.
SELECT e.name, m.name FROM Employee e, Employee m WHERE e.Employee_id=m.Manager_id;func sumOfEvenNumbers(upTo n: Int) -> Int {
return (1...n)
.filter { $0 % 2 == 0 }
.reduce(0, +)
}
print(sumOfEvenNumbers(upTo: 10)) // Output: 30
Afzallik va Kamchiliklari
Imperative programming:
Afzalliklar
Kamchiliklar
state ni aniq boshqarishni talab qiladi, bu esa ehtiyotkorlik bilan boshqarilmasa xatolarga olib kelishi mumkin.
Kodni loyihaning turli qismlarida yoki turli loyihalarda qayta ishlatish qiyinroq bo'lishi mumkin
Declarative programming:
Afzalliklar
Soddaroq va tushunarliroq, chunki u qanday sodir bo'lishini emas, balki nima bo'lishi kerakligini tasvirlashga qaratilgan.
O'qish va tushunish odatda osonroq bo'ladi, chunki u qisqaroq bo'ladi.
Kamchiliklar
Kamroq aniq va nozik bo'lishi mumkin, bu esa ishlab chiquvchilar o'z kodlari oqimi ustidan nazoratni cheklashi mumkin.
Kamroq samarali bo'lishi mumkin, chunki u muayyan vazifani bajarish uchun ko'proq qadamlarni o'z ichiga olishi mumkin.