Tilning umumiy spesifikatsiyasi Boshqariladigan kodning barcha ustunliklari CLR tomonidan ta’minlanadi. Agar sizning kodingiz boshqa tillarda yozilgan dasturlar tomonidan foydalanilsa, maksimal mos kelishligi uchun tilning umumiy spesifikatsiyasiga asoslanish zarur(Common Language Specification, CLS). Bu har xil tillar uchun umumiy bo’lgan xususiyatlar to’plamini tasvirlaydi. Umumiy til spesifikatsiyasi kodining mosligi ayniqsa boshqa tillar tomonidan foydalaniladigan dastur ta’minoti komponentalarini hosil qilish uchun kerak bo’ladi. Agar siz kelajakda tijorat kodini yaratmoqchi bo’lsangiz, u holda CLS spesifikatsiyasiga asoslanishingizga to’g’ri keladi. Shuning uchun biz, garchi buning kitobimizga bevosita aloqasi bo’lmasada, bu bo’limda u haqida ma’lumotlar keltirdik.
Mutaxassis javoblari Savol. Nima uchun bir nechta tillardan foydalangan holda tashish masalalari, xavfsizlik va dasturlash tomonlarini hal qilish uchun C#kompyuter tilini yaratish kerak bo’ldi? CQQ tilini .NET Framework ni qo’llash uchun soddalashtirish mumkin emasmidi?
Javob. Ha, CQQ tilini shunday soddalashtirish mumkinki, natijada u CLR muhiti boshqaruvida ishga tushiriladigan .NET ga mos keladigan kodni hosil qilsin. Dastlab Microsoft kompaniyasi shunday ham qildi, mavjud kodlarni .NET Framework ga o’tkazish imkoniyatini beradigan, hamda boshqariladigan kengaytmalar deb ataladiganlarni CQQ ga qo’shib qo’ydi. Ammo yangi .NET ishlanmasi buni C#da ancha yengil bajarishga imkon beradi. Esingizdami, C# tili aynan .NET platformasi uchun yaratilgan va bu texnologiyaning rivojlanishini qo’llash uchun mo’ljallangan edi.
Minutlik amaliyot 1. C#tilining qaysi tillar bilan bevosita aloqasi bor?
2. Tilga bog’liQ bo’lmagan bajarilish muhiti (CLR) nima?
3. JIT-kompilyator nima?
Ob’ektga-yo’naltirilgan dasturlash S# tili ob’ektga-yo’naltirilgan dasturlash (OYD) prinsiplariga asoslanadi va barcha Qo’shimcha dasturlar (Soprogrammo’) Qaysidir darajada ob’ektga-yo’naltirilgan bo’lib hisoblanadi. Shuning uchun hattoki, eng oddiy Si – dasturini yozish uchun OYD prinsiplarini bilish lozim.
OYD dasturchilar duch keladigan masalalarni yechishning zo’r texnologiyasi bo’lib hisoblanadi. Kompyuter kashf Qilinishi bilan dasturlash usullari sezilarli darajada o’zgardi. Kompyuter fanlarining rivojlanishi mobaynida
____________________________________________________________
S# tili S va CQQ larning avlodi bo’lib hisoblanadi, shu bilan birga Java bilan ham yaQinligi bor.
.NET dasturi bajarilishi bilan tilga bog’liQ bo’lmagan bajarilish muhiti (CLR) boshQaradi
JIT-kompilyatori MSlL-kodni mazkur protsessorning ichki kodlariga almashtiradi, shuningdek, dastur Qismlarining kodlari ham ehtiyoga ko’ra almashtiriladi.
mutaxassislarga asosan dasturlarni murakkabligini oshishi bilan bog’liQ masalalarni hal Qilishga to’g’ri keldi. Masalan, birinchi kompyuterlarda dasturlash ikkilamchi mashina instruksiyalarini o’zgartirish vositasida amalga oshirilgan, shuning uchun kompyuterning oldingi panelini boshQarish elementlari foydalanilgan. Ushbu usul dasturlar hajmi bir necha yuzlab instruksiyalar bilan chegaralangan holatgacha yaxshi ishladi. Foydalaniladigan kodlar hajmi o’sganda assembler tili kashf Qilindi va dastur tuzuvchilar mashina instruksiyalaridan ramziy ma’noda foydalanish Qatorida endi nisbatan murakkab va katta dasturlar bilan ishlash imkoniga ega bo’ldilar. Keyin dasturlar hajmi va murakkabligining o’sishiga mos ravishda dastur tuzuvchilar FORTRAN va COBOL kabi yuQori darajadagi tillarni ishlab chiQishdi. Oldingi tillar o’zlarining imkoniyatlari chegarasiga yetganda esa strukturaviy dasturlash yaratildi.
E’tibor bering, dasturlash rivojlanishining har bir bosQichida dastur tuzuvchiga nisbatan murakkab vazifalarni hal Qilish imkonini beruvchi texnologiya va instrumentlar yaratilgan. Bu yo’ldagi har bir Qadamda yangi texnologiyalar oldingilarining eng yaxshi jihatlarini o’ziga olishgan. Vaziyat shu darajaga bordiki, ko’plab loyihalar strukturaviy dasturlash o’sha davr talablariga nomuvofiQ bo’lib Qolgan chegaraga yetib keldi va umuman yangi istiQbolli, Qaysiki ob’ektga-yo’naltirilgan dasturlash bo’lgan texnologiyalarga zarurat tug’ildi.
OYD o’zida strukturaviy dasturlashning eng yaxshi g’oyalarini singdirib oldi va ularni oQibatda dasturlarni tashkillashtirishning yangi yo’llari paydo bo’lishiga olib kelgan bir nechta yangi konsepsiyalar bilan birlashtirdi. Masalaga chuQur yondoshmasdan shuni aytish mumkinki, dastur ikkita usuldan bittasi orQali tashkil topadi: o’zining kodi atrofida yoki o’zining ma’lumotlari atrofida. Strukturaviy dasturlash texnologiyalaridan foydalanishda odatda dasturlar kod atrofida tashkillashtiriladi. Bunday usulga “ma’lumotlarga ta’sir etuvchi kod” deb Qarash mumkin.
OYD dasturlari boshQacha usullar bilan ishlaydi. Ular ma’lumotlar atrofida tashkillashtirilgan va ularning hal Qiluvchi prinsipini “boshQariladigan ma’lumotlar orQali kodga kirish” deb ifodalash mumkin. Ob’ektga-yo’naltirilgan tillarda siz ma’lumotlarni, shuningdek bu ma’lumotlarga ta’sir etishi mumkin bo’lgan protseduralarni (ya’ni aynan ma’lumotlar tipi ushbu ma’lumotlarga Qo’llanilishi mumkin bo’lgan operatsiyalar shaklini belgilab beradi) aniQlaysiz.
OYD ning barcha tillaridagi, S# ham Qo’shib hisoblaganda, ob’ektga-yo’naltirilgan dasturlash prinsiplarini Qo’llab-Quvvatlash uchun uchta umumiy jihatlar mavjud - inkapsulyatsiya, ko’p shakllilik (polimorfizm) va vorislik.
Keling, ularni alohida-alohida ko’rib chiQamiz.