C Sharp

**C#** (*Si Sharp – deb talaffuz qilinadi*) – leksik jihatdan kengaytirilgan, imperativ, deklarativ, funksional, umumiy, obyektga yoʻnaltirilgan (sinfga asoslangan) va komponentlarga yoʻnaltirilgan dasturlash fanlarini oʻz ichiga olgan umumiy maqsadli, koʻp paradigmali dasturlash tili. U 2000-yilda Microsoft tomonidan .NET tashabbusi doirasida ishlab chiqilgan va keyinchalik Ecma (ECMA-334) va ISO (ISO / IEC 23270: 2018) tomonidan xalqaro standart sifatida tasdiqlangan.

= Misol =

```c#
Console. WriteLine(„Salom, dunyo!“);
```


## C# tili tarixi
Kompyuter tillari oʻz-oʻzidan emas, balki oʻzaro bir-biriga bogʻliqlikda mavjud boʻladi. Har qanday yangi til u yoki bu shaklda oldingi yaratilgan tillarning xossalarini oʻziga meros qilib oladi, yaʼni ketma-ketlik prinsipi amalga oshiriladi. Natijada bitta tilning imkoniyatlari boshqalari tomonidan foydalaniladi (masalan, yangi xususiyatlar mavjud kontekstga birlashtiriladi, tilning eski tuzilishlari esa oʻchirib yuboriladi). Kompyuter tillarining evolyutsiyasi shunday tarzda roʻy beradi va dasturlash mahorati takomillashtiriladi. C# tili yuqoridagilardan istisno emas, u boshqa dasturlash tillarining koʻplab foydali imkoniyatlarini meros qilib oldi va dunyoda eng koʻp qoʻllaniladigan ikkita kompyuter tillari – Ci, C++, shuningdek Java tili bilan uzviy bogʻliqdir. C# tili 1972-yilda Nyu-Djersi shtatining Myurrey-xill shahrida Bell Laboratories kompaniyasining tizimli dastur tuzuvchisi Dennis Richie tomonidan yaratilgan. Bu til oʻzini shunchalik yaxshi koʻrsatdiki, oxir oqibatda unda Unix operatsion tizimlarining 90 % yadro kodlari yozildi (oldin quyi darajadagi til assemblerda yozilgan). C# ning vujudga kelishidan oldinroq yaratilgan tillardan, (Pascal ulardan eng mashhuri hisoblanadi), yetarli darajada muvaffaqiyatli foydalanilgan, lekin aynan C# tili dasturlashning zamonaviy davri boshlanishini belgilab berdi. 1960-yillarda dasturlash texnologiyalaridagi strukturaviy dasturlashlarning paydo boʻlishiga olib kelgan inqilobiy oʻzgarishlar C# tilini yaratish uchun asosiy imkoniyatlarni belgilab berdi. Strukturaviy dasturlashlarning paydo boʻlishiga qadar katta dasturlarni yozish qiyin boʻlgan, satr kodlari miqdorining oshishi sababli dasturlarning oʻtish joylari chalkash massalariga aylanib ketishiga olib keladi. Strukturaviy tillar dastur tuzuvchi instrumentariysiga shartli operatorlarni, lokal oʻzgaradigan tartiblarni va boshqa mukammallashtirishlarni qoʻshib bu muammoni hal qildi. Shunday tarzda nisbatan katta dasturlarni yozish imkoniyati vujudga keldi. Aynan C# tili kuch, elegantlik va maʼnodorlikni oʻzida muvaffaqiyatli birlashtirgan birinchi strukturaviy til boʻldi. Uning boʻlishi mumkin boʻlgan xatolar masʼuliyatini tilga emas dastur tuzuvchi zimmasiga yuklaydigan prinsiplar bilan inobatga olgan holda sintaksisdan foydalanishdagi qisqalik va osonlik kabi xususiyatlari tezda koʻplab tarafdorlarini topdi. Bugungi kunda biz mazkur sifatlarni oʻz oʻzidan anglashiladigan deb hisoblaymiz, lekin S da birinchi marotaba dastur tuzuvchiga zarur boʻlgan ajoyib yangi imkoniyatlar mujassamlashtirilgan. Natijada 1980 yillardan boshlab S strukturaviy dasturlash tillari orasida eng koʻp foydalaniladiganlaridan biri boʻlib qoldi. Biroq, dasturlashning rivojlantirish choralariga koʻra bundanda kattaroq dasturlarni qayta ishlash muammosi kelib chiqmoqda. Loyiha kodi maʼlum bir hajmga yetgan zahoti (uning raqamli ahamiyati dastur, dastur tuzuvchi, foydalanilgan instrumentlarga bogʻliq boʻladi, lekin taxminan 5000 satr kodlari nazarda tutilayapti) S-dasturlarini tushunish va kuzatib borishda qiyinchiliklar yuzaga keladi.

## [[OYD]]ning vujudga kelishi va [[C++]] tilining yaratilishi
1970 yillar oxirida koʻplab loyihalar S strukturaviy dasturlash tili yordamida qayta ishlash uchun oson boʻlgan eng yuqori hajmga erishgan. Endi bularga yangicha munosabat talab qilina boshlandi va ushbu muammoni hal etish uchun dastur tuzuvchiga katta hajmdagi dasturlar bilan ishlash imkonini beruvchi obyektga yoʻnaltirilgan dasturlash (OYD) yaratildi. Hamonki, oʻsha vaqtda S eng ommabop til boʻlishiga qaramasdan OYD ni qoʻllab-quvvatlamadi, uning obyektga yoʻnaltirilgan (keyinchalik C++ deb atalgan) versiyasini yaratish zarurati tugʻildi. Bu versiya oʻsha Bell Laboratories kompaniyasining xodimi Brian Straustrup tomonidan 1979-yil boshida ishlab chiqilgan. Dastlab yangi til „C sinflar bilan“ degan nom oldi, lekin 1983-yilda C++ deb qayta nomlangan. U oʻzida C tilini toʻla qamrab oladi (yaʼni, C C++ uchun poydevor boʻlib xizmat qiladi) va obyektga yoʻnaltirilgan dasturlashni qoʻllab-quvvatlash uchun moʻljallangan yangi imkoniyatlarni namoyon qiladi. Aslida C++ C tilining obyektga yoʻnaltirilgan versiyasi hisoblanadi, shuning uchun C ni biluvchi dastur tuzuvchi uchun C++ da dasturlashga oʻtishda yangi tilni emas, balki faqatgina OYD ning yangi konsepsiyasini oʻrganish kifoya qiladi. C++ tili uzoq vaqt mobaynida sifatga etibor bermay, faqat miqdor oshirish, hajmni kengaytirish jihatidan rivojlandi va soya ostida qolib ketdi. 1990 yillar boshida u ommaviy ravishda qoʻllanila boshlandi va katta yutuqlarga erishdi, oʻn yillikning oxirida esa dasturiy taʼminotni qayta ishlashda eng keng foydalaniladigan va bugungi kunda ham peshqadamlik qilayotgan tilga aylandi. Shuni anglash muhimki, C++ ni ishlab chiqilishi yangi dasturlash tilini yaratishga intilish hisoblanmaydi, balki faqatgina etarli darajada muvaffaqiyatli tilni takomillashtirayapti va toʻldirayapti. Bunday qarash, hozirda ham kompyuter tillarini rivojlantirishning yangi yoʻnalishlarida qoʻllanilayapti.