Dasturlash tillari tarixi

**Dasturlash tillari tarixi** – dastlabki kompyuterlarni hujjatlashtirishdan tortib, dasturiy taʼminotni ishlab chiqish uchun zamonaviy vositalarni oʻz ichiga oladi. Ilk dasturlash tillari juda oʻta tor doirada qoʻllanilishga moʻljallangan boʻlib, ular matematik belgilarga va shunga oʻxshash tushunarsiz sintaksisga tayangan.

Kompyuter texnikasining rivojlanishi dasturlash tillarida algoritmlarni yozib olish uchun turli xil yangi belgilar tizimlarining paydo boʻlish jarayonini belgilab berdi. Bunday tilning paydo boʻlishining maʼnosi dastur kodini soddalashtirishdan iborat edi.

Dasturlash tillarini besh avlodga boʻlish qabul qilingan. Birinchi avlodga oʻtgan asrning 50-yillari boshlarida, birinchi kompyuterlar endigina paydo boʻlgan paytda tuzilgan tillar kiradi. Bu **"bir satrda bir buyruq"** prinsipi asosida qurilgan birinchi assembler tili edi.

XX asr davomida kompilyatorlar nazariyasi boʻyicha olib borilgan izlanishlar yuqori darajadagi dasturlash tillarini yaratishga olib keldi, ular koʻrsatmalarni uzatish uchun qulayroq sintaksisdan foydalanadilar.

## Tarixi

### Mashina kodlari va assembler
Kompyuterning elektron qurilmalari ishlashning fizik tamoyillari shundan iboratki, kompyuter faqat bir va noldan iborat buyruqlarni – kuchlanishning pasayishi ketma-ketligini, yaʼni mashina kodini idrok eta oladi. Kompyuterlar rivojlanishining dastlabki bosqichida odam kompyuterga tushunarli tilda, mashina kodlarida dasturlar tuzishi kerak edi. Har bir koʻrsatma birliklar va nollarning turli kombinatsiyasi sifatida ifodalangan *opkod* hamda *operand* manzillaridan iborat edi. Shunday qilib, protsessor uchun har qanday dastur oʻsha paytda birlar va nollar ketma-ketligi sifatida qaragan.

Keyinchalik kompyuter bilan muloqot qilish amaliyoti shuni koʻrsatdiki, bunday tilni oʻzlashtirish qiyin va noqulaydir. Uni ishlatganda 1 yoki 0 ni notoʻgʻri ketma-ketlikda yozib koʻplab xatolarga yoʻl qoʻyish ehtimoli juda yuqori edi. Dasturni boshqarish juda qiyin boʻlgan. Bundan tashqari, mashina kodlarida dasturlashda kompyuterning ichki tuzilishini, har bir blokning ishlash prinsipini yaxshi bilish kerak edi va bunday tildagi eng yomon narsa shundaki, bu tildagi dasturlar – birlar va nollarning juda uzun ketma-ketligi mashinaga bogʻliq, yaʼni har bir kompyuter uchun oʻz dasturini tuzish kerak edi va mashina kodlarida dasturlash juda koʻp narsa: vaqt, ish va dasturchining eʼtiborini oshirishni talab etardi.

Tez orada mashina kodini yaratish jarayonini avtomatlashtirish mumkinligi maʼlum boʻldi. 1950-yildan boshlab dasturlarni yozish uchun *mnemonik til* – **[[Assembler tili]]**dan foydalanila boshlandi. Assembler tili mashina kodini inson uchun qulayroq shaklda koʻrsatishga imkon berdi: buyruqlar va bu buyruqlar bajariladigan obyektlarni belgilash uchun buyruqning mohiyatini aks ettiruvchi ikkilik kodlar oʻrniga harflar yoki qisqartirilgan maxsus soʻzlar qoʻllangan. Masalan, assembler tilida ikkita raqamni qoʻshish boʻyicha koʻrsatma *add* soʻzi bilan ifodalanadi, uning mashina kodi *000010* tarzida boʻladi.

Assembler quyi darajadagi dasturlash tilidir. Quyi darajadagi dasturlash tili, bu muayyan turdagi protsessorga yoʻnaltirilgan va uning xususiyatlarini hisobga oladigan dasturlash tili demakdir. Bunday holda, „quyi“ „yomon“ degani emas, balki bu shuni anglatadiki, til operatorlari mashina kodiga yaqin va maxsus protsessor koʻrsatmalariga qaratilgan boʻladi. Assemblar tilining paydo boʻlishi dasturchilarning hayotini sezilarli darajada osonlashtirdi, chunki endi ular koʻzda miltillovchi nollar va birlar oʻrniga oddiy tilga yaqin belgilardan iborat buyruqlar bilan dastur yozishlari mumkin edi. Oʻsha vaqt uchun bu til innovatsiya edi va mashhur edi, chunki u kichik dasturlarni yozishga imkon berardi, bu esa oʻsha davr mashinalari uchun muhim mezon sanalgan.

Ammo u orqali yirik dasturiy taʼminotlar ishlab chiqish murakkabligi boʻlgani bois uchinchi avlod tillari hisoblanmish yuqori darajadagi tillarning paydo boʻlishiga olib keldi. Ammo assemblerdan foydalanish shu bilan tugamadi, u bugungi kungacha tor doiralarda mashhur boʻlib kelmoqda. Hozirgi vaqtda u dasturlarning alohida qismlarini yozishda yoki baʼzan dasturlarning oʻzini yozishda qoʻllanadi. Misol tariqasida, drayverlar, oʻyinlar va operatsion tizimlar yuklagichi (*bootloader*)ni yozishda assemblerga murojaat etiladi. Shuni unutmaslik kerakki, bu til hakerlar orasida ham mashhurdir, chunki bu tilda yozilgan dasturning tezligi yuqori darajadagi dasturlash tilida yozilgan dastur tezligidan ancha yuqori boʻlishidadir. Buning sababi shundaki, assemblerda yozilgan dastur hajmi juda kichik boʻladi. Antivirus ishlab chiquvchilari oʻz dasturlarining baʼzi modullarida assemblerdan ham foydalanadilar.

### Birinchi yuqori darajadagi dasturlash tillari
1950-yillarning oʻrtalari dasturlashning jadal rivojlanishi bilan tavsiflanadi. Mashina kodlarida dasturlashning roli pasaya boshladi, mashinalar va dasturchilar oʻrtasida vositachi boʻlgan yangi turdagi dasturlash tillari paydo boʻla boshladi. Dasturlash tillarining ikkinchi va uchinchi avlodlari davri boshlandi. XX asrning 50-yillari oʻrtalariga kelib, birinchi yuqori darajadagi dasturlash tillari (*high-level programming languages*)ni yaratishga kirishildi. Ushbu tillar kompyuterning maʼlum bir turiga (mashinadan mustaqil) bogʻlanmagan edi. Ularning har biri uchun oʻz kompilyatorlari ishlab chiqilgandi. *Kompilyatsiya* – yuqori darajadagi manba tilda yozilgan dasturni mashina kodiga yaqin quyi darajali tildagi ekvivalent dastur (absolyut kod, obyekt moduli, baʼzan assembler tili)ga oʻgirishni anglatadi.

Birinchi yuqori darajadagi dasturlash tili 1942-1945-yillarda Konrad Suze tomonidan yaratilgan :en:Plankalkül dasturlash tili edi. Buyruqlarni kompyuterga yetkazish uchun moʻljallangan birinchi ishlaydigan dasturlash tillari 1950-yillarning boshlarida yozilgan. 1949-yilda taklif qilingan Jon Mauchlyning :en:Short code elektron kompyuter uchun yaratilgan birinchi yuqori darajadagi tillardan biri edi. Mashina kodidan farqli oʻlaroq, Short code matematik ifodalarni tushunarli shaklda ifodalaydi. Biroq, dastur har safar ishga tushirilganda mashina kodiga tarjima qilinishi kerak edi, bu jarayon ekvivalent mashina kodini ishlatishdan ancha sekinroq davom etardi.

Oʻz kompilyatoriga ega boʻlgan birinchi yuqori darajali til 1951-yilda doktorlik dissertatsiyasi uchun Korrado Böhm tomonidan yaratilgan.

#### FORTRAN
Tijoriy maqsad uchun ishlab chiqilgan birinchi til FORTRAN (**''FOR**mula **TRAN**slation*) boʻlib, 1956-yilda (birinchi yoʻriqnomasi 1956-yilda paydo boʻlgan, lekin birinchi boʻlib 1954-yilda ishlab chiqarila boshlangan) [[IBM]]da Jon Bekus boshchiligidagi guruh tomonidan ishlab chiqilgan. U ilmiy-texnik hisob-kitoblar uchun moʻljallangan edi.

1953-yil oxirida Jon Bekus IBM 704 kompyuterini dasturlash uchun assemblerdan samaraliroq boʻlgan muqobil dasturlash tilini ishlab chiqishni taklif qildi. 1954-yil oʻrtalarida Fortran tilining spetsifikatsiyasi loyihasi tugallandi. Biroq ushbu dasturlash tili avval boshida foydalanuvchilar tomonidan iliq kutib olinmadi, chunki Fortran assemblerga qaraganda past unumdorlikka ega kod yaratadigan yuqori darajadagi dasturlash tili deya qarala boshladi. Shu tufayli uni optimallashtirish zarurati vujudga keldi.

Keyinchalik bu til olimlar tomonidan intensiv hisoblash dasturlarini yozish uchun keng qoʻllangan. Murakkab maʼlumotlar turini kiritish uni ayniqsa texnik ilovalar uchun moslashtirdi.

1960-yilga kelib, Fortranning IBM 709, 650, 1620, 7090 kompyuterlari uchun versiyalari paydo boʻldi. Uning katta mashhurligi raqobatchi kompyuter ishlab chiqaruvchilarni oʻz kompyuterlari uchun Fortran kompilyatorlarini tuzishga undadi. Shunday qilib, 1963-yilga kelib turli platformalar uchun 40 dan ortiq kompilyatorlar tuzilgan edi. Shu bois Fortran birinchi keng tarqalgan dasturlash tili hisoblanadi.

Fortran SSSRʼda Gʻarbga qaraganda kechroq paydo boʻldi, chunki dastlab [[Algol]] SSSRʼda yanada istiqbolli til hisoblangan. Sovet fiziklarining 1960-yillarda Fortran dasturlari yordamida deyarli barcha hisob-kitoblar amalga oshirilgan [[CERN]]ʼdagi hamkasblari bilan aloqasi Fortranni amalga oshirishda muhim rol oʻynadi.

Fortrandagi birinchi sovet kompilyatori 1967-yilda „[[:ru:Минск (компьютер)|Minsk-2]]“ mashinasi uchun yaratilgan, ammo u unchalik mashhur boʻlmagan. Fortranning keng qoʻllanishi 1968-yilda BESM-6 (*BESM-6*) mashinasi uchun „*FORTRAN-DUBNA*“ kompilyatori yaratilgandan keyin boshlandi. 1972-yilda paydo boʻlgan ES (*YeS*) [[EHM]]larida dastlab Fortran translyatori (boshqa dasturlar bilan birga IBM/360 dan „aynan nusxa olingan“) mavjud edi.

==== ALGOL ====
Algol 1958-yilda ETHʼda (Syurix, [[Shveysariya]]) bir haftalik konferentsiyada keng koʻlamli ilovalar uchun universal dasturlash tili sifatida ishlab chiqilgan va keyin Xalqaro axborotni qayta ishlash federatsiyasi tomonidan tuzilgan qoʻmita tomonidan yakunlangan. Qoʻmita tarkibiga Yevropa hamda amerikalik bir qancha yetakchi dasturlash tillari sohasidagi olimlar va muhandislar, jumladan, Jon Bekus, Jon Makkarti, Piter Naur, Edsger Deykstr va keyinchalik Kobol tilini rivojlantirish qoʻmitasiga raislik qilgan Jozef Vegstenruen jalb etildi.

Dastlab, taklif qilingan ALGOL (*ALGOrithmic Language*) nomi rad etildi. Ammo u umumiy foydalanishga aylanganligi sababli, IALʼning rasmiy nomi keyinchalik ALGOL 58 ga oʻzgartirilishi belgilab qoʻyildi.

Yangi tilning tarafdorlari ham, tanqidchilari ham bor edi. [[Amerika Qoʻshma Shtatlari|Qoʻshma Shtatlarda]] Algol sovuqqonlik bilan qabul qilindi, u faqat akademik muhitda mashhur edi. Algolnining targʻibotchilari bir qator qiyinchiliklarga duch kelishdi. Xususan, oʻsha paytda mavjud boʻlgan kompyuterlarning hech biri Algol alifbosini tashkil etgan barcha 116 ta harfni kiritish-chiqarishni qoʻllab-quvvatlamas edi.

Ammo Yevropada Algol ishtiyoq bilan qabul qilindi. U akademik muhitda tezda mashhurlikka erishdi va kompilyatorlar hamma joyda ishlab chiqildi, ularning koʻpchiligi amalga oshirishning murakkabligiga qaramay, juda muvaffaqiyatli boʻldi. Algol Buyuk Britaniyadan SSSRʼning Uzoq Sharqiga tarqalib, ilmiy nashrlarda algoritmlarni tavsiflash uchun universal til va haqiqiy dasturlash vositasiga aylandi.

Algolda dastur tushunchasi buyruqlarning erkin ketma-ketligi sifatida emas, balki aniq tasvirlangan va ajratilgan qismlardan iborat blokli tuzilma sifatida paydo boʻldi.

Algol dasturining asosiy bloki asosiy dasturning oʻzi hisoblanadi. U *begin* va *end* kalit soʻzlari juftligi bilan chegaralangan blokga oʻrnatilgan bajariladigan qismini, shuningdek, pastki dasturlarning tavsiflarini oʻz ichiga oladi. Har bir ostdastur kichik dastur shaklida boʻlib, uning ichida oʻziga xos maʼlumotlar tasvirlangan, nom va rasmiy parametrlar roʻyxati koʻrinishidagi yagona aniqlangan interfeys va kod blokini oʻzz ichiga oladi. Bunday holda, bloklar kichik ostbloklarga ajratilishi mumkin.

==== LISP ====
Lisp tili 1960-yilda J. Makkarti tomonidan taklif qilingan boʻlib, u raqamli boʻlmagan xarakterdagi masalalarni yechish dasturlarini ishlab chiqishga qaratilgan edi. LISP inglizcha *'LIS**t **P*'rocessing (*roʻyxatga ishlov berish'') iborasining qisqartmasi boʻlib, uning asosiy qoʻllanish sohasini yaxshi taʼkidlaydi.

Algebraik ifodalar, grafiklar, chekli guruhlar elementlari, toʻplamlar, xulosa chiqarish qoidalari va boshqa koʻplab murakkab obyektlarni roʻyxat shaklida tasvirlash qulayligi bois ushbu dasturlash tili tezda mashhurlikka erishdi. Xususan, roʻyxatlar kompyuterlar xotirasida axborotni taqdim etishning eng moslashuvchan shaklidir.

Oʻtgan davr mobaynida ushbu tilning bir qator dialektlari: Common LISP, Mac LISP, Inter LISP, Standard LISP va boshqalar paydo boʻldi. Ularning orasidagi farqlar katta emas va asosan oʻrnatilgan funksiyalarning bir oz boshqacha toʻplamiga va dasturlarni yozish shaklidagi baʼzi farqlari bilan xarakterlanadi. Shunday ekan, ulardan biri ustida ishlashni oʻrgangan dasturchi boshqasini bemalol oʻzlashtira oladi.

Lispʼning katta afzalligi uning funksional yoʻnalishidir, yaʼni dasturlash funksiyalar yordamida amalga oshiriladi. Bundan tashqari, funksiya maʼlum bir klassning elementlarini boshqa klassning tegishli elementlari bilan bogʻlaydigan qoida sifatida tushuniladi.

Moslashtirish jarayoni dasturning ishlashiga hech qanday taʼsir koʻrsatmaydi, faqat uning natijasi – funksiyaning qiymati muhim sanaladi. Bu katta dasturiy paketlarni yozish va diskni raskadrovka qilishni nisbatan osonlashtiradi. Dasturlarning aniqligi, ularning funksiyalarining ochiq-oydin chegaralanganligi, ularni bajarishda murakkab nojoʻya taʼsirlarning yoʻqligi mantiqiy jihatdan murakkab vazifalarni, masalan, sunʼiy intellektni dasturlash uchun majburiy talablardir.

#### COBOL
Kobol 1959-yilda ishlab chiqilgan va asosan biznes ilovalarini ishlab chiqish uchun dasturlar yozish, shuningdek, iqtisodiy sohada ishlash uchun moʻljallangan edi.

Tilni yaratuvchilar uni mashinadan mustaqil va tabiiy ingliz tiliga iloji boricha yaqinroq qilishni maqsad qilganlar. Ikkala maqsad ham muvaffaqiyatli amalga oshirildi; COBOL dasturlari hatto mutaxassis boʻlmaganlar uchun ham tushunarli hisoblanadi, chunki ushbu dasturlash tilidagi matnlar hech qanday maxsus izohga muhtoj emas.

Kobol koʻplab ilova hamda dialektlarga ega. Til uchun bir qator standartlar: 1968, 1974, 1985 va 2002-yillarda tasdiqlangan. Eng soʻnggi standart tilga obyektga yoʻnaltirilgan paradigmani joriy etdi.
## Yana qarang
* Dasturlash tili

## Manbalar