Dasturlash tillari haqida.
Muayyan
dastur shaxsiy kompyuterga o`rnatilib ishga tushirilganidan so`ng u Operatsion Sistema(OS) ga biror
algoritm asosida ketma-ketlik va bog`liqlik bilan buyruqlarni berib boradi, OS
esa uni tartib bo`yicha bajaradi. Bi shu algoritmni kompyuterga biror bir til
orqali izohlab kiritamiz. Bu til esa dasturlash
tili deyiladi. Dasturlash tillari juda ko`p, ammo barcha tillar oxirida
yagona tilga o`giriladi, tarjima qilinadi (translation), bu til Assembler tilidir. Assembler tili -
mashina tiliga eng yaqin til, ya`ni mashinaga to`g`ridan-to`g`ri buyruq
beradigan til. E`tibor bering OS ga emas,
mashinaga buyruq beradigan til deb tushuntirildi. Bu tarjimani OS yoki
biror dastur amalga oshirishi mumkin. Assembler dasturlash tili juda ham
murakkab til bo`lganligi sababli uni o`rganish, o`rgatish juda kam uchraydi.
Shu Assembler tilininig ustiga boshqa dasturlash tillari yozilgan va ular foydalanishga
ancha qulay bo`lganligi sababli hozirgi vaqtda ancha ommalashib, rivojlanib
bormoqda...
Zamonaviy
dasturlash tillari C, C++, C#, Java, Php, ...
C,
C++ dan biror bir service(kompyuterda ishga tushirilganda kerakli natijani
qaytaruvchi dastur), driver(texnik qurilmalar va OS ni buyruq va ma`lumotlarni
almashib turishini ta`minlovchi dastur), mikrosxemalarga dastur
yozganda(robotlashtirish, avtomatlashtirish) va
kuchli matematik amallar yozganda keng foydalaniladi.
Java
va C# dan foydalanuvchilar uchun dastur yoki saytlar tuzishda qo`llaniladi. C#
dasturlash tili Java dan imkoniyatlari tomonidan ancha oldinlab ketgan, ammo
faqat Windows OS da ishlaydi xolos. Java esa har qanday sistemada ishlayveradi.
Undan tashqari C# ni o`zi ham, unda tuzilgan dasturlarni ishlatilishi uchun
o`rnatiladigan qobiq dasturlar ham pullik, Java da esa tekinlari ham bor....
Xavfsizlik va tezlik tomoni muhim bo`lgani sababli bunga ham e`tibor qaratish
lozim. Windows OS muhitida C# har tomonlama kuchliroq ammo Linux OS da esa C#
ishlamaganligi sababli taqqoslay olmaymiz. Windows va Linux OS larni
taqqoslaydigan bo`lsak - Windows shaxsiy kompyuterlarda foydalanish ma`qulroq,
chunki server versiyasi Linuxdan har tomonlama orqada qoladi. Shu sababli Java
da katta va xavfsizligi o`ta muhim bo`lgan saytlar yoziladi. Sabab Javada emas,
OS da bo`lganligi sababli... Yaqinda C# ham platforma tanlamaydigan bo`lib
chiqmoqda, ko`ramiz natija qanaqa bo`ladi endi...
PHP
- kichik saytlarni, web sahifalarni, tezda bitkazilishi kerak bo`lgan
ma`lumotnoma,reklama saytlarini tuzish uchun foydalaniladigan dasturlash
tili....
Dasturlash tillarida xotira
tushunchasi
Dastur
ishlashi uchun xotira eng muhim subyektlardan biri, chunki xotirasiz hech narsa
ishlamaydi, biror amal bajarishda faqat xotiradagi qiymatlar ustida amal
bajariladi, xotirada bo`lmagan narsalarni dasturlash tillari xato deb
hisoblaydi. Demak har bir foydalanmoqchi bo`lgan qiymatimizni avval xotiraga
olib keyin foydalanar ekanmiz.
2
xil xotira mavjud. Dinamik(Dynamic) va Statik(Static) xotira
turlari.
Statik
xotira chegaralangan va u to`lgan sari dasturning ishlash tezligi pasayishi
mumkin. Dinamik xotira esa chegaralanmagan va undan foydalanishda bizda
imkoniyatlar mavjud. Statik xotirada e`lon qilingan(saqlangan) qiymat statik
xotiraning o`zida saqlanadi. Dinamik xotirada saqlanganda esa qiymatning o`zi
keng maydondek tasavvur qilinadigan dinamik xotiraga va uning manzili esa
statik xotirada saqlab qo`yiladi. Shu tufayli katta ma`lumotlar bilan
ishlaganda ham statik xotirani tejab foydalanamiz. Dinamic xotirada e`lon
qilingan o`zgaruvchi o`chirib yuborilsa statik xotiradagi dinamik xotiraning
adresi o`chiriladi ammo dinamik xotiradagi qiymat qolib ketadi. Bir nechta shu
kabi holatlar yuzaga kelsa dinamik xotirada keraksiz ma`lumot qolib ketadi,
buni ham tozalashga to`g`ri keladi. C++ da bularni dasturchining o`zi hisobga
olib tozalab ketishi lozim, Java,C# da esa hisobga olingan va avtomatik
ravishda ro`y beradi (Garbage Collect algoritmi asosida chiqindilardan tozalab
turiladi) . Ya`ni har bir blok yopilishida o`sha blok ichidagi chiqindilar
tozalab ketiladi. Demak dinamik xotirada biror qiymat o`zgartirilsa statik
xotiradagi qiymat(ya`ni dinamik xotiradagi qiymatning manzili) o`zgartirilmasdan
dinamik xotiradagi qiymat o`zgartirib qo`yiladi.
Tizimli va Obyektga yo`naltirilgan
dasturlash tillari.
Biz
yuqorida dasturlash tili deganda qisqacha ma`lumotga ega bo`ldik. Demak
algoritmlarni biror bir qonuniyat bo`yicha kompyuterga bajarishi uchun buyruqlar
asosida izohlab beriladigan til - dasturlash tili. Dasturlash tillari insonlar
kashf qilinganida tizimli dasturlash bo`lgan xolos. Hisob-kitob,
qo`shish-ayirish va shunga o`xshash oddiy narsalar bo`lgan. Obyekt tushunchasi
bo`lmagan. Faqat biror bir ma`lumotni saqlab undan foydalanish bo`lgan xolos.
Bular Tizimli dasturlash deyilgan.
Undan
so`ng dasturlar rivojlangan va ba`zi dasturlar murakkab dasturning bir
qismi(funksiyasi) bo`lib qolgan. Shunda funksiya kiritilgan, undan so`ng
to`plamlardan foydalanishga ehtiyoj sezilgan. Qaysidir bir ma`lumotlar to`plamini
biror tipga tegishli deb shunaqa to`plam hosil qilish fikrini ilgari surib struct,
class tushunchalari
kiritilgan. Struct(struktura)
Class(klass)dan biroz oldinroq kiritilgan va OOP ga aloqasi yo`q. Struct
bilan Class ning farqini ko`rishda Tizimli va OOP ni farqini bilib olamiz.
No comments:
Post a Comment