C Sharp: Versiyalar orasidagi farq

3 845 bayt olib tashlandi ,  3 yil oldin
tahrir izohi yoʻq
Tahrir izohi yoʻq
}
</pre>
==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-yil]]larda 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 obʼektga yoʻnaltirilgan dasturlash (OYD) yaratildi. Hamonki, oʻsha vaqtda S eng ommabop til boʻlishiga qaramasdan OYD ni qoʻllab-quvvatlamadi, uning obʼektga 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 obʼektga yoʻnaltirilgan dasturlashni qoʻllab-quvvatlash uchun moʻljallangan yangi imkoniyatlarni namoyon qiladi. Aslida C++ C tilining obʼektga 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.<ref>[[OʻzME]]</ref>
 
== Manbalar ==
{{manbalar}}
{{computer-stub}}
[[Turkum:Dasturlash tillari]]
 
 
{{stub}}
 
<!--interwikis -->
С# тили тарихи
Компьютер тиллари ўз-ўзидан эмас, балки ўзаро бир-бирига боғлиқликда мавжуд бўлади. Ҳар қандай янги тил у ёки бу шаклда олдинги яратилган тилларнинг хоссаларини ўзига мерос қилиб олади, яъни кетма-кетлик принципи амалга оширилади. Натижада битта тилнинг имкониятлари бошқалари томонидан фойдаланилади (масалан, янги хусусиятлар мавжуд контекстга бирлаштирилади, тилнинг эски тузилишлари эса ўчириб юборилади). Компьютер тилларининг эволюцияси шундай тарзда рўй беради ва дастурлаш маҳорати такомиллаштирилади.
С# тили юқоридагилардан истисно эмас, у бошқа дастурлаш тилларининг кўплаб фойдали имкониятларини мерос қилиб олди ва дунёда энг кўп қўлланиладиган иккита компьютер тиллари – Си, С++, шунингдек Java тили билан узвий боғлиқдир. С# ни тушуниш учун мазкур боғлиқлик табиатини аниқлаб олиш керак, шунинг учун олдин биз ушбу уч тилнинг ривожланиш тарихи тўғрисида тўхталиб ўтамиз.
С тили 1972 йилда Нью-Джерси штатининг Мюррей-хилл шаҳрида Bell Laboratories компаниясининг тизимли дастур тузувчиси Дэннис Ричи томонидан яратилган. Бу тил ўзини шунчалик яхши кўрсатдики, охир оқибатда унда Unix операцион тизимларининг 90% ядро кодлари ёзилди (олдин қуйи даражадаги тил ассемблерда ёзилган). С нинг вужудга келишидан олдинроқ яратилган тиллардан, Pascal улардан энг машҳури ҳисобланади, етарли даражада муваффақиятли фойдаланилган, лекин айнан С тили дастурлашнинг замонавий даври бошланишини белгилаб берди.
1960 йилларда дастурлаш технологияларидаги структуравий дастурлашларнинг пайдо бўлишига олиб келган инқилобий ўзгаришлар С тилини яратиш учун асосий имкониятларни белгилаб берди. Структуравий дастурлашларнинг пайдо бўлишига қадар катта дастурларни ёзиш қийин бўлган, сатр кодлари миқдорининг ошиши сабабли дастурларнинг ўтиш жойлари чалкаш массаларига айланиб кетишига олиб келади. Структуравий тиллар дастур тузувчи инструментарийсига шартли операторларни, локал ўзгарадиган тартибларни ва бошқа мукаммаллаштиришларни қўшиб бу муаммони ҳал қилди. Шундай тарзда нисбатан катта дастурларни ёзиш имконияти вужудга келди.
Айнан С тили куч, элегантлик ва маънодорликни ўзида муваффақиятли бирлаштирган биринчи структуравий тил бўлди. Унинг бўлиши мумкин бўлган хатолар масъулиятини тилга эмас дастур тузувчи зиммасига юклайдиган принциплар билан инобатга олган ҳолда синтаксисдан фойдаланишдаги қисқалик ва осонлик каби хусусиятлари тезда кўплаб тарафдорларини топди.
Бугунги кунда биз мазкур сифатларни ўз ўзидан англашиладиган деб ҳисоблаймиз, лекин С да биринчи маротаба дастур тузувчига зарур бўлган ажойиб янги имкониятлар мужассамлаштирилган. Натижада 1980 йиллардан бошлаб С структуравий дастурлаш тиллари орасида энг кўп фойдаланиладиганларидан бири бўлиб қолди.
Бироқ, дастурлашнинг ривожлантириш чораларига кўра бунданда каттароқ дастурларни қайта ишлаш муаммоси келиб чиқмоқда. Лойиҳа коди маълум бир ҳажмга етган заҳоти (унинг рақамли аҳамияти дастур, дастур тузувчи, фойдаланилган инструментларга боғлиқ бўлади, лекин тахминан 5000 сатр кодлари назарда тутилаяпти) С-дастурларини тушуниш ва кузатиб боришда қийинчиликлар юзага келади.
ОЙД нинг вужудга келиши ва С++ тилининг яратилиши
1970 йиллар охирида кўплаб лойиҳалар С структуравий дастурлаш тили ёрдамида қайта ишлаш учун осон бўлган энг юқори ҳажмга эришган. Энди буларга янгича муносабат талаб қилина бошланди ва ушбу муаммони ҳал этиш учун дастур тузувчига катта ҳажмдаги дастурлар билан ишлаш имконини берувчи объектга йўналтирилган дастурлаш (ОЙД) яратилди. Ҳамонки, ўша вақтда С энг оммабоп тил бўлишига қарамасдан ОЙД ни қўллаб-қувватламади, унинг объектга йўналтирилган (кейинчалик С++ деб аталган) версиясини яратиш зарурати туғилди.
Бу версия ўша Bell Laboratories компаниясининг ходими Бьярн Страустрап томонидан 1979 йил бошида ишлаб чиқилган. Дастлаб янги тил “С синфлар билан” деган ном олди, лекин 1983 йилда С++ деб қайта номланган. У ўзида С тилини тўла қамраб олади (яъни, С С++ учун пойдевор бўлиб хизмат қилади) ва объектга йўналтирилган дастурлашни қўллаб-қувватлаш учун мўлжалланган янги имкониятларни намоён қилади. Аслида С++ С тилининг объектга йўналтирилган версияси ҳисобланади, шунинг учун С ни билувчи дастур тузувчи учун С++ да дастурлашга ўтишда янги тилни эмас, балки фақатгина ОЙД нинг янги концепциясини ўрганиш кифоя қилади.
С++ тили узоқ вақт мобайнида сифатга эьтибор бермай, фақат миқдор ошириш, ҳажмни кенгайтириш жиҳатидан ривожланди ва соя остида қолиб кетди. 1990 йиллар бошида у оммавий равишда қўлланила бошланди ва катта ютуқларга эришди, ўн йилликнинг охирида эса дастурий таъминотни қайта ишлашда энг кенг фойдаланиладиган ва бугунги кунда ҳам пешқадамлик қилаётган тилга айланди.
Шуни англаш муҳимки, С++ ни ишлаб чиқилиши янги дастурлаш тилини яратишга интилиш ҳисобланмайди, балки фақатгина етарли даражада муваффақиятли тилни такомиллаштираяпти ва тўлдираяпти. Бундай қараш, ҳозирда ҳам компьютер тилларини ривожлантиришнинг янги йўналишларида қўлланилаяпти.