Monday, March 3, 2014

Dasturlash tillari haqida

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