Dasturlash tillarining paydo bo'lish tarixi. Dasturlash tillarining rivojlanish tarixi: hamma narsa haqida qisqacha. Yangi shakllanish davri

Kompyuterlar hali ham odamlar muloqot qilish uchun foydalanadigan tabiiy tillarni yaxshi bilishmaydi yoki hech bo'lmaganda hali.

O'z navbatida, odamlar mashina tillarini yaxshi tushunmaydilar. Shu sababli, inson va kompyuter o'rtasidagi tushunishdagi, fikrlash modelidagi ushbu bo'shliqni qoplaydigan dasturlash tillari yaratildi.

Dasturlash tillari quyidagilar bo'lishi mumkin:

  • oddiy,
  • murakkab va
  • tushunarsiz (masalan, grafik).

Dasturlash tillari tarixi

Bugungi kunda bir necha yuzlab dasturlash tillari qo'llanilmoqda, ammo yana ko'plari endi ishlatilmayapti. Vaqt o'tishi bilan yangi vazifalar uchun yangi dasturlash tillari ishlab chiqildi.

Nolinchi avlod

  • (elektr)
  • o'z qurilmasining tuzilishi bilan dasturlashtirilgan
  • yuqori ixtisoslashgan,
  • Dasturlash imkoniyatlari cheklangan.

Jakkard to'quv dastgohi

Bunday mashinalarga misol qilib dasturlashtiriladigan qurilmaga ega jakkard to'quv mashinasini keltirish mumkin. U 1804 yilda frantsuz Jozef Mari Jakkard tomonidan yaratilgan. Aytgancha, uning sharafiga naqshli, bezakli mato jakkard yoki jakkard deb ataladi.

Mashina yordamida quyidagi rasmda ko'rsatilgan perfokartalar yordamida matoga kashta tikishni oson va ommaviy ravishda yasash mumkin edi:

Guruch. 1. Jakkard dastgohi uchun perfokartalar

Perfokartalar dizaynni matoda takrorlash uchun mashinalar uchun harakatlar ketma-ketligi bilan dasturlashtirilgan.

Bebbaj mashinasi

Internet va Internet

Ixtisoslashgan tillar paydo bo'ldi:

  • JavaScript.

Ko'pgina veb-saytlar PHP va JavaScript yordamida yoziladi.

Oldindan mavjud bo'lgan ba'zi tillar Internet va Internetning paydo bo'lishi bilan yangi bo'shliqlarni topdi va vebga yo'naltirilgan bo'ldi:

  • Ruby,
  • Pynton,
  • Java.

2000-yillarga kelib, eski dasturlash tillari asta-sekin nobud bo'lmoqda, yangilari paydo bo'lmoqda, ammo bu narsalar bilan nima sodir bo'lishi haqida umumiy qabul qilingan tushuncha yo'q.

Har qanday dasturlash tili o'zining hayot aylanishiga ega bo'lgan sun'iy tildir. Xuddi shunday, Windows oilasining operatsion tizimlari ham o'zlarining hayot aylanishlariga ega: .

Dasturlash tilining hayot aylanishi:

  • Yaratilish,
  • erta qabul qilish (tildan dastlabki foydalanish),
  • (sanoat) muvaffaqiyat,
  • so'nish, boshqa tillar bilan almashtirish.

Zamonaviy dunyoda dasturiy ta'minotning asosiy qismi 10-15 tilda yozilgan, garchi biz bilgan butun vaqt davomida yuzlab dasturlash tillari yaratilgan. Rasmiy ravishda ro'yxatdan o'tgan 300 yoki 400 ta til mavjud.

Dasturlash tili nima

Til bu

  • sintaksis (dasturlarni yozish qoidalari),
  • semantika (yozuv qoidalariga kiritilgan va tilga kiritilgan elementlarning xatti-harakati),
  • ish vaqti (ish vaqti muhiti).

Sintaksis dasturlarni matnda tasvirlash shaklini, ya'ni qanday yozilishi kerakligini, tilga qanday so'zlarni kiritishini, vergul, bo'sh joy va hokazolarni belgilaydi.

Misol sifatida Lisp dan foydalanadigan sintaksis

Rasmiy grammatikaga ega bo'lgan eng oddiy dasturlash tillaridan biri bu LISP ro'yxat tilidir.

Guruch. 10. LISP dasturi

LISP - ro'yxatlarni ishlab chiqaruvchi juda qadimgi til. Bunday tilning grammatikasi yuqoridan pastgacha o'qiladigan ro'yxatlar grammatikasidir.

  • Lispda iboralar mavjud: bitta atom yoki ro'yxat bo'lishi mumkin;
  • atom raqam yoki belgidir
  • raqam - raqam, ya'ni ortiqcha yoki minus raqami bo'lgan, kamida bitta,
  • belgi - bu harflar, xohlaganingizcha ko'p marta, hatto ko'p marta qilishingiz mumkin,
  • ro'yxat - ro'yxat, qavs ichidagi iboralar bir necha marta.

Lisp dasturi - ro'yxatlar ro'yxati. Lispda tinish belgilari yo'q, lekin qavslar mavjud. Lisp-da shunday uzun dasturlar bo'lishi mumkin, bu erda oxirida faqat yopish qavslaridan iborat 2-3 varaq mavjud.

Eng oddiy Lisp tarjimoni atigi 19 qatorni oladi! Hech bir boshqa tilda bunday hashamat yo'q.

Semantika

Agar grammatika tasvirlash shakllarini tavsiflasa: harflar, raqamlar, qavslar, u holda semantika dastur qanday ishlashini, bu harflar, raqamlar, qavslar nimani anglatishini, qanday ishlashini, bir-biri bilan o'zaro ta'sirini va hokazolarni tavsiflaydi.

Semantikani ifodalash imkoniyatlari ancha cheklangan.

Semantika quyidagicha bo'lishi mumkin:

  • tabiiy, insoniy tilda tasvirlangan. Ko'pgina tillarni faqat shu tarzda tasvirlash mumkin. Darhaqiqat, bu asosiy holat bo'lsa, unda rus yoki ingliz tillarida falon narsa falon tarzda ishlaydi, bir jamoa buni qiladi, boshqasi falon narsalarni qiladi va hokazo. ;
  • rasmiy ravishda ko'rsatilgan (ixtisoslashgan tillarda, masalan, ba'zi hisob-kitoblar uchun elementlarning xatti-harakatlarini rasmiy ravishda tasvirlash mumkin);
  • original amalga oshirish bilan belgilangan (kamdan-kam hollarda qo'llaniladi, lekin bu semantika juda murakkab yoki juda muhim bo'lmaganda tavsif uchun "oxirgi umid");
  • testlar (holatlar) to'plami bilan tasvirlangan, ya'ni bu shunday ishlashi kerak va bu shunday ishlashi kerak.

Semantika ikki qismga bo'linadi:

  • statik,
  • dinamik.

Statik semantika

  • leksik konstruksiyalarga ma’no beradi;
  • o'zgaruvchilar va parametrlarning maqbul qiymatlarini aniqlaydi;
  • sintaktik cheklovlarni tavsiflaydi, masalan, sintaksisdan foydalanib, siz raqamlar bilan satr qo'sha olmaysiz, deb tasvirlab bo'lmaydi.

Dinamik yoki frontal ish vaqti semantikasi

  • dastur bajarilishining umumiy xarakterini belgilaydi;
  • o'rnatilgan operatsiyalar va o'rnatilgan kutubxonalar qanday ishlashini tasvirlaydi. Bu dastur yozilgandan keyin qanday yashashi va ishlashini tushunish uchun zarur bo'lgan semantikaning asosiy qismidir;
  • tarjimonga qo'yiladigan talablarni belgilaydi.

Dasturlash tillarida ma'lumotlar tiplari tizimi

Semantikaning muhim bo'g'ini tip tizimi - til mafkurasida yozilgan usullar va ularning bir-biri bilan qanday munosabatda bo'lish qoidalari va iboralar to'plamidir.

Odatda, dasturlash tilida ma'lumotlar turlari tizimi mavjud - qatorlar, raqamlar, ro'yxatlar va boshqalar. Masalan, Force tili mavjud bo'lib, unda barcha ma'lumotlar shunchaki , boshqacha aytganda, ma'lumotlar turlari umuman o'rnatilmagan tillar mavjud.

Agar tizim turi mavjud bo'lsa, unda dasturlash tillarini ikkita mustaqil sinfga bo'lish mumkin, ular quyida keltirilgan.

Ma'lumotlar turi tizimi:

  • yozilgan yoki yozilmagan til
  • statik yoki dinamik yozish
  • kuchli yoki zaif yozish

Agar matn terish statik bo'lsa, u holda dasturda yozilgan barcha ifodalarning turlari uning bajarilish paytigacha ma'lum bo'ladi, ya'ni funktsiyalar, sinflar, o'zgaruvchilar tasvirlanganda, darhol shartlar o'rnatiladi yoki aniq ta'minlanadi. Bunday qurilishning turi boshidanoq ma'lum.

Agar matn terish dinamik bo'lsa, aksincha, kontekst tili ob'ektlarining turi bajarilish momentigacha noma'lum bo'ladi, ya'ni funktsiyaning turi yoki biror narsa oxirigacha noma'lum bo'ladi.

Kuchli terish degani, agar ob'ekt turiga ega bo'lsa va u ma'lum bo'lsa, unda bu turni almashtirish mumkin, lekin ob'ektning o'zi qat'iy turga ega va o'zgarmaydi.

Zaif yozishda ob'ekt turi kontekstga va u bilan nima qilayotganingizga qarab farq qilishi mumkin.

Siz tilning tip tizimini kuzatib borishingiz kerak. Dasturning boshida faqat bitta, unchalik sezilmaydigan belgining noto'g'ri ko'rsatilgan turi tufayli butun ifoda turi o'zgaradi va shuning uchun juda g'alati xatolar paydo bo'lishi mumkin.

Tilning keyingi muhim xususiyati

Dasturlash tili paradigmasi

  • yunon tilidan - shablon, misol, namuna;
  • bu ushbu tilda dasturlarni yozish uslubini belgilovchi g'oyalar va tushunchalar tizimi - tilning unda dasturlarni yozish usuli (wiki);
  • til bir yoki bir nechta paradigmalarni (ko'p paradigma) "ma'qullaydi".

Asosiy paradigmalar

  • imperativ: dastur - bu kompyuterning, ma'lumotlarning va boshqalarning ichki holatini o'zgartiradigan ketma-ket ko'rsatmalar to'plami. Ya'ni, dastur - bu ko'rsatma;
  • funktsional: dastur - bu matematik funktsiyalar to'plami. Dasturning ishi funksiyalarning qiymatini hisoblash;
  • ob'ektga yo'naltirilgan: ob'ekt sohasi xususiyatlar va usullarga ega ob'ektlar yordamida tavsiflanadi. Dastur - ob'ektlar orasidagi o'zaro ta'sir jarayoni;
  • mantiqiy: dastur - bu mavzu bo'yicha bayonotlar to'plami. Dasturning ishi ushbu mavzu bo'yicha bayonotlarning haqiqatini aniqlashdan iborat.

Ko'pincha bir xil amaliy muammoga yuqorida sanab o'tilgan paradigmalarning har qandayidan foydalanib erishish mumkin.

Tilni ishlatishda e'tiborga olish kerak bo'lgan yana bir muhim qism Runtime - bu til qanday ishlaydi.

Ish vaqti - dasturning bajarilishi

Dastur turli yo'llar bilan bajarilishi mumkin:

  1. Dasturni bajarishning eng sodda va sodda usuli bu talqin qilish - ishga tushirish vaqtida dastlabki kodni o'qish. Yengil, skript tillari shunday ishlaydi. Dasturchining o'zi ham ishlaydi: u dastur yozgach, o'z dasturiga o'z ko'zi bilan qaraydi va dasturi qanday ishlashini va nima qilish kerakligini aniqlaydi;
  2. Dasturlarni ishga tushirishning keng tarqalgan usuli - ularni mashina kodiga kompilyatsiya qilish, ularni ishga tushirishdan oldin alohida qadam. Alohida vosita - kompilyator mavjud bo'lib, u erda dastur manbalari o'qiladi, ular bilan nimadir bajariladi, ularni joriy tizim uchun tushunarli bo'lgan mashina kodlariga aylantiradi. Keyin bu kod to'g'ridan-to'g'ri apparat tomonidan bajariladi;
  3. Gibrid usul - virtual mashinada bayt kompilyatsiyasi va bajarilishi. Kompilyator manba kodini o'qiydi va keyin virtual mashinada bajariladigan bayt kodini ishlab chiqaradi.

Ro'yxatda keltirilgan uchta usul har xil va turli maqsadlarda qo'llaniladi. Ushbu usullarni birlashtirish mumkin - tarjimon dasturning tezroq ishlashi uchun uning ba'zi qismlarini tezda kompilyatsiya qilishi mumkin. Dinamik ravishda yaratilgan kod kompilyatsiyasiz talqin qilinishi mumkin.

Tillar vakillari

C tili

- eng mashhurlaridan biri, jismonan yozilgan kod jihatidan eng muhimlaridan biri, amalda bu "bizning hamma narsamiz".

U 1972 yilda yaratilgan, yaratuvchilari Dennis Ritchi va uning hamkasblari. D.Ritchi, shuningdek, Linux tizimini va boshqa ko'plab foydali narsalarni yaratdi.

  • majburiy,
  • tuzilgan,
  • qo'lda xotirani boshqarish (tilga o'rnatilgan ba'zi operatsiyalar yordamida siz xotira elementlarini o'zgaruvchilarga ajratishingiz va keyin kerak bo'lmaganda ularni bo'shatishingiz kerak).

Aytgancha, C bugungi kunda ham dolzarb bo'lib, quyidagilar uchun ishlatiladi:

  • tizim dasturlash (masalan, Linux yadrosi C tilida yozilgan),
  • raqamlarni maydalash (raqamli maydalagichlar, ya'ni tezlik muhim bo'lgan katta hisoblar uchun),
  • mikrokontrollerlar va o'rnatilgan tizimlarni dasturlash.

C past darajadagi til, biz uni inson yuziga ega Assembler deb aytishimiz mumkin, chunki odam deyarli har qanday C konstruktsiyasini Assemblerga qo'lda o'zgartira oladi va natijalar juda tushunarli operatsiyalar bo'ladi.

C dasturlari juda ixchamdir. Ular shunga o'xshash dasturlar Assambleyada yozilganidan unchalik katta emas. Bundan tashqari, C tilidagi rivojlanish Assambleyaga qaraganda ancha tezroq.

Shuning uchun, C endi ishlash talab qilinadigan vazifalar uchun ishlatiladi, xotirani boshqarish juda muhim va dasturning ixcham hajmi katta ahamiyatga ega. Agar sizda biron bir qurilmaga o'rnatilgan kichik mikrokontroller bo'lsa, u holda dastur Assembly yoki C da yozilishi mumkin.

Guruch. 11. Oddiy C dasturiga misol.

Java

  • 1995 yilda yaratilgan,
  • yaratuvchilari: Jeyms Gosling va Sun Microsystems (Gosling ushbu kompaniyada ishlagan).
  • Ob'ektga yo'naltirilgan, imperativ (C imperativ, lekin ob'ektga yo'naltirilgan EMAS),
  • qat'iy va statik tarzda yozilgan,
  • virtual mashina bilan bayt kompilyatsiya qilingan,
  • xotiraga kirish imkoni yo'q, axlatni avtomatik yig'ish (bo'sh xotiraning uchdan bir yoki to'rtdan bir qismi bo'lsa, ikkinchisi yaxshi ishlaydi).

90-yillarda JAVA ko'p platformali til sifatida katta shuhrat qozondi. Muayyan platforma uchun virtual mashinani yozganingizdan so'ng, masalan, Windows yoki Linux yoki Mac uchun, unda har qanday JAVA dasturlarini qayta kompilyatsiya qilmasdan ishga tushirishingiz mumkin. Shu sababli, til turli platformalar (Windowsning turli versiyalari, turli xil Maclar) mavjud bo'lgan veb-erada mashhur edi. JAVA dasturlari turli platformalarda tez va juda yaxshi ishladi.

Quyidagilar uchun ishlatiladi:

  • amaliy dasturlash, shu jumladan veb-dasturlash,
  • o'rnatilgan tizimlar (agar C mikrokontrollerlar uchun ishlatilsa, JAVA mobil telefonlar, terminallar va boshqalar uchun ishlatiladi),
  • ko'p sonli foydalanuvchilarga ega yuqori yuklangan tizimlar (bank dasturlari, havo harakatini boshqarish tizimlari va boshqalar).

Java tili spetsifikatsiyalari va turli JVM ilovalari o'rtasida farq qilish kerak:

  • Sun JDK (Sun'dan, hozir Oracle),
  • IBM JDK (pulga sotiladi),
  • OpenJDK (mutlaqo bepul)
  • va h.k.

Guruch. 12. JAVA da oddiy dasturga misol.

Rasmda ko'rinib turganidek. 12, oddiy harakatlarni bajarish uchun juda ko'p harflar yozishingiz kerak. Java ko'pincha yangi Cobol deb ataladi, chunki u bir paytlar Cobolni yomon tilga aylantirgan bir xil salbiy xususiyatlarni o'z ichiga oladi.

Shunga qaramay, JAVA juda mashhur, xususan, operatsion tizimning mijoz qismi unda yozilgan.

Lisp

  • U haqiqatan ham tugatadi Lis t P protsessor (LisP);
  • 1958 yilda yaratilgan;
  • ijodkorlar: Jon Makkarti;
  • juda g'alati sintaksisga qaramay, sof funktsional til;
  • kuchli va dinamik tarzda yozilgan;
  • umumiy talqin qilinishi mumkin;
  • xotiraga kirish imkoni yo'q, avtomatik axlat yig'ish, bu virtual mashinada emas, balki tarjimonga tushadi.

Quyidagilar uchun ishlatiladi:

  • ilmiy dasturlash va tadqiqot;
  • sun'iy intellekt - Lisp eng boshida aql bilan qidirish orqali yaratilgan. 1950-yillarning oxiri va 1960-yillarning boshlarida ilmiy doiralarda sunʼiy intellekt yaratilishi haqida kuchli tuygʻu paydo boʻldi. Keyin sun'iy intellektning asosiy xususiyatlari tabiiy til, matn bilan ishlash, o'qish, gapirish va ba'zi aqlli narsalarni qilish qobiliyatidir, deb ishonilgan. Lisp matndan semantik ma'lumotlarni qayta ishlash uchun yaratilgan;
  • har qanday narsa, lekin, qoida tariqasida, u juda samarali foydalanilmaydi.

1958 yilda ishlab chiqilgan Lisp tili juda ko'p o'zgarishlarga duch keldi.

U ko'plab ilovalar va dialektlarga ega:

  • CommonLisp (1970-yillarda yaratilgan) klassik dastur boʻlib, asosiysi hisoblanadi;
  • Sxema (sxema) - CommonLisp-dan ba'zi narsalarni chiqarib tashlaydigan va bajarishni osonlashtiradigan soddalashtirilgan dialekt;
  • Clojure - til jihatidan Lisp dialekti, lekin u JAVA mashinasining tepasida ishlaydi, ya'ni bayt-kodga kompilyatsiya qilinadi va xuddi JAVA dasturi kabi bajariladi.

Guruch. 13. LISP dasturi: pufakchali tartiblash

Python

  • 1970-yillarning Britaniya shousi Monti Pyntonning uchuvchi sirki nomi bilan atalgan (hazillar eski, ammo kulgili)
  • 1991 yilda yaratilgan
  • yaratuvchisi - gollandiyalik Guido van Rossum
  • ko'p paradigmali til, ob'ektga yo'naltirilgan, imperativ, funktsional
  • kuchli va dinamik tarzda yozilgan
  • talqin qilingan, virtual mashina bilan bayt-kompilyatsiya qilingan (amalga oshirishga qarab)

Quyidagilar uchun ishlatiladi:

  • skript dasturlash
  • veb-dasturlash
  • ilmiy dasturlash (modellashtirish, ehtimollik, statistika va boshqa sohalarda orttirilgan tajribani birlashtirgan boshqa sohalar bilan ishlash uchun katta, kuchli paketlar mavjud)

Python - bu til spetsifikatsiyasi. Bir nechta asosiy ilovalar mavjud:

  • CPython - asosiy (ma'lumotnoma)
  • Jython - JVM tepasida
  • PyPy - Python-da Python ("Python-da Python" CPython va Jython-ga qaraganda tezroq va yaxshiroq ishlaydi)

Guruch. 14. Python dasturi: Bubble Sort

Python muhim xususiyatga ega - qavslar (dumaloq, jingalak) o'rniga kod bloklari va strukturaviy elementlarni ajratib ko'rsatish uchun bo'shliqlar yordamida chekinishlar qo'llaniladi, bu barcha tillar uchun odatiy holdir. Python-dan tashqari, deyarli hech kim bunday xususiyatga ega emas.

Vazifa uchun til tanlash

Nima qilish kerakligini bilsangiz, lekin nima qilishni bilmasangiz, vazifa uchun tilni qanday tanlash kerak?

Muhim maslahat: dasturlashni bilganingizdan foydalaning. Bu qanday qilib dasturlashni bilmagan narsangizni ishlatishdan ko'ra yaxshiroq.

Ekotizim

Siz olmoqchi bo'lgan til "yalang'och" til bo'lmasligi kerak, u quyidagi ekotizimga ega bo'lishi kerak:

  • ishlab chiqish vositalari (foydalanuvchilar uchun qulay IDE)
  • tayyor kutubxonalar va ramkalar
  • test holatlarini ishga tushirish uchun sinov vositalari: test ramkalari va asboblari
  • qadoqlash va joylashtirish tizimlari, shuning uchun yozilgan kod qadoqlanishi va boshqa joyga joylashtirilishi mumkin, shunda boshqalar undan osongina foydalanishi mumkin. C tilida bunday xususiyat mavjud emas, lekin Ruby va Python tillarida mavjud.
  • jamiyat. O'lik tillarni ishlatishning hojati yo'q, ular qanchalik ajoyib bo'lmasin. Agar so'raydigan hech kimingiz bo'lmasa, siz butunlay boshi berk ko'chada qolasiz. Ba'zi jamoalar ko'proq do'stona, boshqalari esa kamroq, deb ishoniladi. Masalan, Ruby hamjamiyati ajoyib, ammo Java hamjamiyati dahshatli - u erda hech narsa so'rashingiz shart emas.

Mashhurlik

Jamoada kam ishlatiladigan tilda kod yozadigan odamlarni topish qiyin, masalan, Eyfel. Boshqa tomondan, kirish ostonasi past bo'lgan mega-mashhur JAVA tilidagi vakansiyaga ko'p odamlar oqib kelishadi, lekin uni juda yaxshi yozadigan odamlarni topish oson bo'lmaydi.

Til qanchalik mashhur bo'lsa, unda o'z-o'zidan o'sib chiqadigan kutubxonalar, jamoalar, ramkalar va boshqa narsalar shunchalik ko'p bo'ladi.

O'rganish darajasi

Tilni deyarli hech kim to'liq bilmaydi. Ishlayotganingizda, tilni ko'proq o'rganishingiz kerak bo'ladi. Ba'zi tillarni o'rganish oson, boshqalari esa juda qiyin.

JAVA - bu o'rganish oson va o'z imkoniyatlariga ko'ra sodda, keyin hamma narsa til orqali emas, balki asboblar orqali quriladi.

C++ tilini to'liq o'rganishning iloji yo'q, chunki kod ishlab chiqarish bilan juda murakkab narsalar mavjud.

Tillarning o'ziga xosligi

Muayyan tillar muayyan muammolarni hal qilish uchun ko'proq mos keladi.

1-misol: veb-ilova

  • ma'lumotlar bazasi bilan o'zaro ta'sir qiladi
  • kompaniyadagi ichki xizmat
  • Bizga tez rivojlanish kerak, chunki xo'jayin buni haqiqatan ham so'raydi.

Bunday vazifa uchun Python yoki Ruby mos keladi. JAVA da buni qilish shart emas

2-misol: uyali aloqa operatorining billing tizimi

  • soniyada minglab operatsiyalar, juda ko'p turli xil to'lovlar va o'tkazmalar
  • yuqori ishonchlilik va xatolarga chidamlilik
  • konfiguratsiyadagi moslashuvchanlik, muammoni tashxislash

Bunday holda, bizning tanlovimiz Java, C++, Erlang - boy vositalarga ega boy tillardir.

3-misol: sun'iy yo'ldosh uchun bort kompyuteri kodi

  • cheklangan resurslar (faqat megabayt xotira va juda past soat tezligi)
  • sun'iy yo'ldosh orientatsiyasini yo'qotmasligi, parchalanmasligi yoki portlamasligi uchun real vaqtni qiyinlashtiradi
  • qat'iy ma'lum vazifalar, hech qanday moslashuvchanlik va sozlamalar yo'q
  • ko'p sonli hisob-kitoblar

Bizning tanlovimiz C va C-ga o'xshash tillar (va hatto assembler), chunki resurslar juda kam va bu talablar bajarilishi kerak.

Maqola videoga asoslangan:

To'g'ri dasturlash tilini qanday tanlash mumkin - Ivan Kalinin

Video 2014-yil dekabr oyida suratga olingan, ammo barcha maʼlumotlar tegishli va cheklov muddati yoʻq. Bugungi voqelik nuqtai nazaridan ko'plab materiallar shubhasiz qiziqish uyg'otadi, masalan, olimlar 1950-yillarning oxiri - 1960-yillarning boshlarida sun'iy intellekt allaqachon ostonada ekanligiga ishonishgan va uning yordami bilan tez orada kompyuterda ishlash mumkin bo'ladi. tabiiy, oddiy, inson tili.

Amalga oshirilgan birinchi yuqori darajadagi kompyuter dasturlash tili FORTRAN (FORmula TRANslator) edi. U 1954-1957 yillarda IBM korporatsiyasi dasturchilari guruhi tomonidan yaratilgan. Yaratilganidan bir necha yil o'tgach, Fortranning tijorat sotuvi boshlandi - bundan oldin u mashina kodlari yoki ramziy assemblerlar yordamida amalga oshirildi.

Avvalo, Fortran ilmiy va muhandislik hamjamiyatida keng tarqaldi, u erda hisob-kitoblar olib borildi.

Bugungi Fortranning asosiy afzalliklaridan biri unda yozilgan dasturlar va muntazam kutubxonalarning juda ko'pligidir. Ushbu tilning minglab paketlarida murakkab integral tenglamalarni yechish, matritsalarni ko'paytirish va hokazolar paketlarini topishingiz mumkin. Ushbu paketlar o'nlab yillar davomida yaratilgan - ular bugungi kungacha o'z ahamiyatini yo'qotmagan. Ularning kutubxonalarining aksariyati yaxshi hujjatlashtirilgan, disk raskadrovka qilingan va yuqori samaradorlikka ega, lekin ular doimiy ravishda o'zlarining Fortran kodini avtomatik ravishda zamonaviy dasturiy ta'minotga aylantirishga harakat qilishadi.

Fortranning joriy etilishi tarixi

Fortran deb nomlangan samarali muqobil til ishlab chiqilgandan so'ng, kompyuter jamoasi yangi mahsulotga shubha bilan qaradi. Fortran dasturi yordamida dasturlash yanada samaraliroq va tezroq bo'lishiga kam odam ishonardi. Biroq, vaqt o'tishi bilan olimlar tilning imkoniyatlarini yuqori baholadilar va undan intensiv dasturiy hisob-kitoblarni yozish uchun faol foydalana boshladilar. Fortran ayniqsa texnik ilovalar uchun mos edi, bunda unga barcha turdagi ma'lumotlarni to'liq to'plash katta yordam berdi.

Zamonaviy Fortran yangi dasturiy ta'minot texnologiyalari va dastur hisoblash arxitekturasidan samarali foydalanish imkonini beruvchi imkoniyatlar bilan to'ldirildi.

Fortranning ajoyib muvaffaqiyatidan so'ng, Evropa kompaniyalari IBM kompyuter sanoatini boshqarishni boshlashidan qo'rqishdi. Amerika va Germaniya hamjamiyatlari universal dasturlash tilini ishlab chiqish uchun oʻz qoʻmitalarini tuzdilar, biroq keyinchalik ular bir qoʻmitaga birlashdilar. Uning mutaxassislari yangi tilni ishlab chiqdilar va uni Xalqaro algoritmik til (IAL) deb nomladilar, ammo ALGOrithmic Language tezda yangi mahsulot uchun keng tarqalgan nomga aylanganligi sababli, qoʻmita IALning rasmiy nomini ALGOL ga oʻzgartirishga majbur boʻldi.

Avtomatik raqamli kompyuterlarni yaratishga olib kelgan eng inqilobiy g'oyalardan biri 19-asrning 20-yillarida Charlz Babidj tomonidan hisob-kitoblarni keyinchalik avtomatik ravishda amalga oshirish uchun mashinaning ishlash tartibini oldindan yozib olish haqidagi g'oya - dastur edi. . Garchi fransuz ixtirochi Jozef Mari Jakkard tomonidan bunday mashinalarni boshqarish uchun ixtiro qilingan Babyge tomonidan qo'llaniladigan perfokartalarga dasturlarni yozish texnik jihatdan kompyuterda dasturlarni saqlashning zamonaviy usullari bilan hech qanday umumiylikga ega bo'lmasa-da, bu erda printsip deyarli bir xil. Shu paytdan boshlab dasturlash tarixi boshlanadi.
Babidjning zamondoshi Ada Levellas dunyodagi birinchi dasturchi deb ataladi. U nazariy jihatdan hisob-kitoblar ketma-ketligini boshqarishning ba'zi usullarini ishlab chiqdi, ular bugungi kunda ham dasturlashda qo'llaniladi. Shuningdek, u deyarli har qanday zamonaviy dasturlash tilining eng muhim konstruktsiyalaridan biri - tsiklni tasvirlab berdi.

Jon Mauchli tomonidan taklif qilingan maxsus belgilar yordamida mashina ko'rsatmalarini kodlash tizimining paydo bo'lishi dasturlash tillari tarixidagi inqilobiy lahza bo'ldi. U taklif qilgan kodlash tizimi uning hamkorlaridan biri Greys Myurrey Xopperni ilhomlantirgan. Mark-1 kompyuterida ishlayotganda, u va uning guruhi ko'plab muammolarga duch keldi va ular birinchi marta o'ylab topdilar. Xususan, ular subprogrammalarni o'ylab topishdi. Dasturlash texnikasining yana bir asosiy kontseptsiyasi birinchi bo'lib Hopper va uning guruhi tomonidan kiritilgan: "disk raskadrovka".
40-yillarning oxirida J. Mauchli ibtidoiy yuqori darajadagi dasturlash tili bo'lgan "Qisqa kod" deb nomlangan tizimni yaratdi. Unda dasturchi echilishi kerak bo‘lgan masalani matematik formulalar ko‘rinishida yozib oldi, so‘ngra maxsus jadval yordamida belgilarma-belgilangan holda bu formulalarni ikki harfli kodlarga aylantirdi. Keyinchalik, maxsus kompyuter dasturi bu kodlarni ikkilik mashina kodiga aylantirdi. J.Mauchli tomonidan ishlab chiqilgan tizim birinchi ibtidoiy tarjimonlardan biri hisoblanadi.

1951 yilda Xopper dunyodagi birinchi kompilyatorni yaratdi va u bu atamani ham kiritdi. Hopper kompilyatori buyruqlarni birlashtirish funksiyasini amalga oshirdi va tarjima paytida pastki dasturlarni tashkil qildi, kompyuter xotirasini ajratdi va yuqori darajadagi buyruqlarni (o'sha paytda psevdokodlarni) mashina buyruqlariga aylantirdi. "Ichki dasturlar kutubxonada (kompyuterda) mavjud va siz kutubxonadan material tanlaganingizda, u kompilyatsiya deb ataladi", deb u o'zi yaratgan atamaning kelib chiqishini tushuntirdi.

1954 yilda G. Xopper boshchiligidagi guruh dasturlash tili va kompilyatorni o'z ichiga olgan tizimni ishlab chiqdi, keyinchalik u Math-Matic deb nomlandi. Math-Matic muvaffaqiyatli yakunlangandan so'ng, Hopper va uning jamoasi foydalanuvchilarga oddiy ingliz tiliga o'xshash tilda dasturlash imkonini beradigan yangi til va kompilyatorni ishlab chiqishga kirishdilar. 1958 yilda Flow-Matic kompilyatori paydo bo'ldi. Flow-Matic kompilyatori tijorat ma'lumotlarini qayta ishlash vazifalari uchun birinchi til edi.
Ushbu yo'nalishdagi o'zgarishlar COBOL tilini (Common Business Oriented Language) yaratishga olib keldi. U 1960 yilda yaratilgan. Bu tilda Fortran va Algol tillariga nisbatan matematik vositalar kam rivojlangan, lekin matnni qayta ishlash vositalari va kerakli hujjat shaklida ma’lumotlarni chiqarishni tashkil etish yaxshi rivojlangan. U boshqaruv va biznes sohalarida ommaviy ma'lumotlarni qayta ishlash uchun asosiy til sifatida mo'ljallangan edi.

50-yillarning o'rtalari dasturlash sohasidagi jadal taraqqiyot bilan tavsiflanadi. Mashina buyruqlarida dasturlashning roli pasaya boshladi. Mashinalar va dasturchilar o'rtasida vositachi bo'lgan dasturlash tillarining yangi turlari paydo bo'la boshladi. Birinchi va eng keng tarqalganlaridan biri 1954 yilda IBM dasturchilari guruhi tomonidan ishlab chiqilgan Fortran (FORTRAN, FORmula TRANslator dan - formula tarjimoni) edi (birinchi versiya). Ushbu til matematik xarakterdagi ilmiy-texnik hisob-kitoblarga qaratilgan bo'lib, kompyuterda matematik va muhandislik masalalarini echish uchun klassik dasturlash tilidir.
Birinchi yuqori darajadagi dasturlash tillari uchun tillarning mavzuga yo'naltirilganligi xarakterli xususiyat edi.
Algol dasturlash tillari orasida alohida o'rin tutadi, uning birinchi versiyasi 1958 yilda paydo bo'lgan. Algolni ishlab chiquvchilardan biri Fortranning "otasi" Jon Backus edi. ALGOrithmic Language nomi uning algoritmlarni yozish uchun mo'ljallanganligini ta'kidlaydi. Aniq mantiqiy tuzilishi tufayli Algol ilmiy-texnik adabiyotlarda algoritmlarni yozishning standart vositasiga aylandi.

60-yillarning o'rtalarida Tomas Kurts va Jon Kameny (Dartmut kollejining matematika bo'limi xodimlari) oddiy inglizcha so'zlardan iborat maxsus dasturlash tilini yaratdilar. Yangi til “Beginner All-Purpose Symbolic Instruction Code, qisqacha BASIC” deb nomlandi. Yangi tilning tug'ilgan yilini 1964 yil deb hisoblash mumkin. Bugungi kunda universal BASIC tili (ko'p versiyalari mavjud) katta shuhrat qozongan va butun dunyo bo'ylab turli toifadagi shaxsiy kompyuter foydalanuvchilari orasida keng tarqalgan. Bunga BASIC ning shaxsiy kompyuterlarning o'rnatilgan tili sifatida qo'llanila boshlanganligi katta yordam berdi, ulardan keng qo'llanilishi 70-yillarning oxirida boshlangan. Biroq, BASIC tuzilmagan tildir va shuning uchun sifatli dasturlashni o'rgatish uchun juda mos kelmaydi. Adolat uchun shuni ta'kidlash kerakki, shaxsiy kompyuterlar uchun BASIC ning so'nggi versiyalari (masalan, QBasic) yanada tizimli bo'lib, vizual imkoniyatlariga ko'ra Paskal kabi tillarga yaqinlashmoqda.

Ishlab chiquvchilar tillarni vazifalarning turli sinflariga qaratdilar, ularni u yoki bu darajada ma'lum bir shaxsiy kompyuter arxitekturasi bilan bog'ladilar va shaxsiy did va g'oyalarni amalga oshirdilar. 60-yillarda universal dasturlash tilini yaratish orqali ushbu "ixtilof" ni bartaraf etishga urinishlar qilindi. Ushbu yo'nalishning birinchi tashabbusi IBM tomonidan 1967 yilda ishlab chiqilgan PL/1 (Dastur tili One) edi. Bu til har qanday muammoni hal qila oladi: hisoblash, matnni qayta ishlash, ma'lumotlarni to'plash va qidirish. Biroq, bu juda murakkab bo'lib chiqdi, undan tarjimon yetarlicha optimal emas va bir qator aniqlanmagan xatolarni o'z ichiga olgan.
Biroq, tillarni universallashtirish yo'nalishi qo'llab-quvvatlandi. Qadimgi tillar universal versiyalarga modernizatsiya qilindi: ALGOL-68 (1968), Fortran-77. Bunday tillar rivojlanib, takomillashib, boshqa barcha tillarni siqib chiqara boshlaydi, deb taxmin qilingan. Biroq, bu urinishlarning hech biri muvaffaqiyatli bo'lmadi.

LISP tili 1965 yilda paydo bo'lgan. Undagi asosiy tushuncha rekursiv aniqlangan funksiyalar tushunchasidir. Har qanday algoritmni ma'lum bir rekursiv funktsiyalar to'plami yordamida tasvirlash mumkinligi isbotlanganligi sababli, LISP mohiyatan universal tildir. Uning yordami bilan shaxsiy kompyuter juda murakkab jarayonlarni, xususan, odamlarning intellektual faoliyatini taqlid qilishi mumkin.
Prolog 1972 yilda Frantsiyada "sun'iy intellekt" dagi muammolarni hal qilish uchun ishlab chiqilgan. Prolog sizga turli bayonotlarni, fikrlash mantiqini rasman tasvirlashga imkon beradi va kompyuterni berilgan savollarga javob berishga majbur qiladi.
Dasturlash tillari tarixidagi muhim voqea 1971 yilda Paskal tilining yaratilishi bo'ldi. Uning muallifi shveytsariyalik olim Niklaus Virtdir. Wirth uni 17-asrning buyuk frantsuz matematigi va diniy faylasufi Blez Paskal sharafiga qo'ydi, u birinchi qo'shish moslamasini ixtiro qildi, shuning uchun yangi til uning nomini oldi. Bu til dastlab tuzilgan dasturlash uchun o'quv tili sifatida ishlab chiqilgan va haqiqatan ham hozir maktab va universitetlarda dasturlashni o'rgatish uchun asosiy tillardan biri hisoblanadi.

1975 yilda ikkita voqea dasturlash tarixida muhim bosqichga aylandi - Bill Geyts va Pol Allen o'zlarining BASIC versiyasini ishlab chiqish orqali o'zlarini e'lon qilishdi va Wirth va Jensen "Pascal User Manual and Report" tilining klassik tavsifini chiqardilar.

1983 yilda Turbo-Paskal tizimini ishlab chiqqan frantsuz Filipp Kan ham ta'sirchan, shu jumladan moliyaviy muvaffaqiyatga erishdi. Uning g'oyasining mohiyati dasturlarni qayta ishlashning ketma-ket bosqichlarini - kompilyatsiya, havolalarni tahrirlash, disk raskadrovka va xato diagnostikasini yagona interfeysda birlashtirish edi. Turbo Paskal nafaqat til va undan tarjimon, balki foydalanuvchiga Paskalda qulay ishlash imkonini beruvchi operatsion qobiqdir. Bu til o'zining ta'lim maqsadidan tashqariga chiqdi va universal imkoniyatlarga ega bo'lgan professional dasturlash tiliga aylandi. Bu afzalliklari tufayli Paskal ko'plab zamonaviy dasturlash tillarining manbasiga aylandi. O'shandan beri Turbo Paskalning bir nechta versiyalari paydo bo'ldi, oxirgisi ettinchi.
Borland/Inprise Turbo Paskal mahsulot liniyasini tugatdi va Windows uchun vizual ishlab chiqish tizimini chiqarishga o'tdi - Delphi.

Dasturiy ta'minot tizimlarini ishlab chiquvchilar (shu jumladan operatsion tizimlar) orasida juda mashhur bo'lgan C tili (birinchi versiya - 1972) zamonaviy dasturlashda katta iz qoldirdi. Bu til operatsion tizimlar, translyatorlar, ma'lumotlar bazalari va boshqa tizim va amaliy dasturlarni ishlab chiqish uchun instrumental til sifatida yaratilgan. C yuqori darajadagi tilning xususiyatlarini ham, mashinaga yo'naltirilgan tilni ham birlashtirib, dasturchiga BASIC va Paskal kabi tillar taqdim etmaydigan barcha mashina resurslariga kirish imkonini beradi.
60-yillarning oxiridan 80-yillarning boshlarigacha bo'lgan davr dasturiy ta'minot inqirozi bilan birga kelgan turli dasturlash tillari sonining tez o'sishi bilan tavsiflanadi. 1975 yil yanvar oyida Pentagon tarjimonlarning tartibsizliklarini tartibga solishga qaror qildi va bitta universal tilni ishlab chiqish bo'yicha qo'mitani tuzdi. 1979 yil may oyida g'olib e'lon qilindi - Jan Ikhbia boshchiligidagi bir guruh olimlar. G'olib bo'lgan til Augusta Ada Levellace sharafiga Ada deb nomlangan. Ushbu til yirik dasturiy ta'minot tizimlarini yaratish va uzoq muddatli (uzoq muddatli) texnik xizmat ko'rsatish uchun mo'ljallangan, u parallel ishlov berish va real vaqt rejimida jarayonlarni boshqarish imkonini beradi;

Ko'p yillar davomida dasturiy ta'minot Fortran, BASIC, Paskal, Ada, C kabi operatsion va protsessual tillar asosida yaratilgan. Dasturlash tillarining rivojlanishi bilan dasturlarni yaratishda boshqa, tubdan farqli yondashuvlar keng tarqaldi.
Turli mezonlar bo'yicha dasturlash tillarining ko'plab tasniflari mavjud. Eng keng tarqalgan tasniflar:
 yuqori darajali (Paskal, BASIC) va past darajadagi dasturlash tillari (Assembler);
 qattiq terilgan (Paskal) va erkin terilgan (BASIC);
 ob'ektga yo'naltirilgan dasturlashni qo'llab-quvvatlamasdan (C++) va boshqalar.

Keling, boshqa tasnifni ko'rib chiqaylik. Dasturlash tillari quyidagilarga bo'linadi:
1) Mashinaga yo'naltirilgan tillar:
- mashina tillari;
- ramziy kodlash tillari;
 avtomatik kodlar;
- makro.
2) Mashinadan mustaqil tillar:
- muammoli tillar;
- universal tillar;
- interaktiv tillar;
- protsessual bo'lmagan tillar.

Mashinaga yo'naltirilgan tillar

Mashinaga yo'naltirilgan tillar - operatorlar va grafik vositalar to'plami shaxsiy kompyuterning xususiyatlariga (ichki til, xotira tuzilishi va boshqalar) sezilarli darajada bog'liq bo'lgan tillardir. Mashinaga yo'naltirilgan tillar quyidagi xususiyatlarga ega:
 yaratilgan dasturlarning yuqori sifati (ixchamligi va bajarilish tezligi);
 aniq apparat resurslaridan foydalanish qobiliyati;
 ob'ekt kodini va xotira buyurtmalarini bashorat qilish;
 samarali dasturlar yaratish uchun siz ushbu shaxsiy kompyuterning buyruqlar tizimini va operatsion xususiyatlarini bilishingiz kerak;
 xatolardan yomon himoyalangan dasturlarni yozishning mehnat talab qiladigan jarayoni (ayniqsa, mashina tillarida va OAJda);
 past dasturlash tezligi;
 boshqa turdagi kompyuterlarda ushbu tillarda tuzilgan dasturlardan bevosita foydalanishning mumkin emasligi.
Mashinaga yo'naltirilgan tillar avtomatik dasturlash darajasiga ko'ra sinflarga bo'linadi.

Mashina tili

Shaxsiy kompyuterning o'ziga xos mashina tili (keyingi o'rinlarda ML deb yuritiladi) mavjud bo'lib, u ular aniqlagan operandlar bo'yicha ma'lum operatsiyalarni bajarish uchun buyuriladi, shuning uchun ML buyruq tilidir. Buyruq operandlarning joylashuvi va bajarilayotgan operatsiya turi haqida ma'lumot beradi.
Kompyuterning yangi modellarida o'zlarining funktsional harakatlarida algoritmik dasturlash tillari operatorlariga yaqinroq bo'lgan murakkabroq buyruqlarni amalga oshirish uchun apparatdagi ichki tillarni takomillashtirish tendentsiyasi mavjud.

Ramziy kodlash tillari

Ramziy kodlash tillari (keyingi o'rinlarda SKL deb yuritiladi), xuddi ML kabi, buyruq tillaridir. Biroq, ikkilik (ichki kodda) yoki sakkiztalik (ko'pincha dasturlarni yozishda qo'llaniladi) raqamlar ketma-ketligi bo'lgan mashina ko'rsatmalaridagi operatsiya kodlari va manzillar YSCda belgilar (identifikatorlar) bilan almashtiriladi, ularning yozish shakli dasturchiga yordam beradi. operatsiyaning semantik mazmunini osonroq eslab qolish. Bu dasturlarni kompilyatsiya qilishda xatolar sonini sezilarli darajada kamaytirishni ta'minlaydi.
Ramziy manzillardan foydalanish YASK yaratish uchun birinchi qadamdir. Kompyuter buyruqlari haqiqiy (jismoniy) manzillar o'rniga ramziy manzillarni o'z ichiga oladi. Tuzilgan dastur natijalariga ko'ra, dastlabki oraliq va natijaviy qiymatlarni saqlash uchun kerakli hujayralar soni aniqlanadi. Dasturni ramziy manzillarda kompilyatsiya qilishdan alohida bajariladigan manzillarni belgilash malakasi past bo'lgan dasturchi yoki maxsus dastur tomonidan amalga oshirilishi mumkin, bu esa dasturchi ishini sezilarli darajada osonlashtiradi.

Avtokodlar

Ibratli buyruqlarni kengaytirilgan joriy etish orqali YSC ning barcha imkoniyatlarini o'z ichiga olgan tillar mavjud - ular avtokodlar deb ataladi.

Turli xil dasturlarda ma'lumotni aylantirish uchun ma'lum protseduralarga mos keladigan juda tez-tez ishlatiladigan buyruqlar ketma-ketligi mavjud. Bunday protseduralarning samarali amalga oshirilishi ularni maxsus so'l buyruqlar shaklida loyihalash va dasturchi uchun mavjud bo'lgan dasturlash tiliga kiritish bilan ta'minlanadi. Makro buyruqlar mashina buyruqlariga ikki xil usulda tarjima qilinadi - tartibga solish va yaratish. Sting tizimida "skeletlar" mavjud - makro buyrug'i bilan ko'rsatilgan kerakli funktsiyani amalga oshiradigan bir qator buyruqlar. Makro ko'rsatmalar haqiqiy parametrlarni uzatishni ta'minlaydi, ular tarjima jarayonida dasturning "skeleti" ga kiritilib, uni haqiqiy mashina dasturiga aylantiradi.
Generatsiya tizimida so'l buyrug'ini tahlil qiladigan, qanday funktsiyani bajarish kerakligini aniqlaydigan va ushbu funktsiyani amalga oshiradigan kerakli buyruqlar ketma-ketligini shakllantiradigan maxsus dasturlar mavjud.
Bu ikkala tizim ham OAJ tarjimonlari va makro buyruqlar to‘plamidan foydalanadi, ular ham avtokod operatorlari hisoblanadi.
Ishlab chiqilgan avtokodlar assemblerlar deb ataladi. Xizmat dasturlari va boshqalar odatda assembler tillarida yoziladi.

Ibratli

Kompyuterning kerakli amallarini bajarilishini tavsiflovchi belgilar ketma-ketligini yanada zichroq shaklga almashtirish vositasi bo'lgan til makro (almashtirish vositasi) deb ataladi.
Asosan, makros asl dasturni yozishni qisqartirish uchun mo'ljallangan. Makroslarning ishlashini ta'minlovchi dasturiy komponent makroprotsessor deb ataladi. Makroprotsessor makro-aniqlovchi va manba matnni oladi. Makroprotsessorning chaqiruvga javobi chiqish matnini chiqarishdan iborat.
Makroslar ham dasturlar, ham ma'lumotlar bilan teng ishlashi mumkin.

Mashinadan mustaqil tillar

Mashinaga bog'liq bo'lmagan tillar muammolarni hal qilish algoritmlarini va qayta ishlanishi kerak bo'lgan ma'lumotlarni tavsiflash vositasidir. Ulardan foydalanuvchilarning keng doirasi uchun foydalanish oson va shaxsiy kompyuterning ishlashini tashkil etishning o'ziga xos xususiyatlarini bilishni talab qilmaydi.
Bunday tillar yuqori darajadagi dasturlash tillari deb ataladi. Bunday tillarda tuzilgan dasturlar tilni ko'rish qoidalariga (vazifalar, segmentlar, bloklar va boshqalar) muvofiq tuzilgan bayonotlar ketma-ketligidir. Til operatorlari dasturni ML ga tarjima qilgandan so'ng tizim bajarishi kerak bo'lgan amallarni tavsiflaydi.
Shunday qilib, tez-tez mashina dasturlarida qo'llaniladigan buyruqlar ketma-ketligi (protseduralar, pastki dasturlar) yuqori darajali tillarda alohida bayonotlar bilan ifodalanadi. Dasturchi mashina ko'rsatmalari darajasida hisoblash jarayonini batafsil tasvirlab bera olmadi, balki algoritmning asosiy xususiyatlariga e'tibor qaratdi.

Muammoga yo'naltirilgan tillar

Kompyuter texnologiyalarini qo'llash sohalarining kengayishi bilan muammolarning yangi sinflarini shakllantirish va yechish taqdimotini rasmiylashtirish zarurati paydo bo'ldi. Dasturlash tillarini yaratish kerak edi, ular ushbu sohada notatsiyalar va terminologiyadan foydalangan holda, ular muammoga yo'naltirilgan tillarga aylangan muammolarni hal qilish uchun kerakli algoritmlarni tavsiflash imkonini beradi; Ushbu tillar muayyan muammolarni hal qilishga qaratilgan bo'lib, dasturchiga muammoni qisqacha va aniq shakllantirish va kerakli shaklda natijalarni olish imkonini beradigan vositalar bilan ta'minlashi kerak.
Ko'p muammoli tillar mavjud, masalan:
- Fortran, Algol – matematik masalalarni yechish uchun yaratilgan tillar;
- Simula, Slang - modellashtirish uchun;
- Lisp, Snoball - ro'yxat tuzilmalari bilan ishlash uchun.

Universal tillar

Universal tillar keng ko'lamli vazifalar uchun yaratilgan: tijorat, ilmiy, modellashtirish va boshqalar. Birinchi universal til IBM tomonidan ishlab chiqilgan bo'lib, u tillar ketma-ketligida PL/1 ga aylandi. Ikkinchi eng kuchli universal til ALGOL-68 deb ataladi.

So'zlashuv tillari

Yangi texnik imkoniyatlarning paydo bo'lishi tizim dasturchilari oldiga vazifa qo'ydi - inson va shaxsiy kompyuter o'rtasidagi tezkor o'zaro ta'sirni ta'minlaydigan dasturiy vositalarni yaratish, ular interaktiv tillar deb ataladi;
Bu ishlar ikki yo‘nalishda amalga oshirildi. Ilgari ishlab chiqilmagan (dialog bo'lmagan) tillarda tuzilgan vazifalarni bajarishga operativ ta'sir ko'rsatish uchun maxsus boshqaruv tillari yaratilgan. Boshqaruv maqsadlariga qo'shimcha ravishda muammolarni hal qilish uchun algoritmlarning tavsifini ta'minlaydigan tillar ham ishlab chiqilgan.
Foydalanuvchi bilan tezkor o'zaro aloqani ta'minlash zarurati dastlabki dastur nusxasini kompyuter xotirasida ob'ekt dasturini mashina kodida olgandan keyin ham saqlashni talab qildi. Interaktiv til yordamida dasturga o'zgartirishlar kiritishda dasturlash tizimi maxsus jadvallar yordamida manba va ob'ekt dasturlari tuzilmalari o'rtasidagi munosabatni o'rnatadi. Bu ob'ekt dasturida kerakli tahririy o'zgarishlarni amalga oshirish imkonini beradi.
So'zlashuv tillariga misollardan biri BASIC.

Protsessual bo'lmagan tillar

Protsessual bo'lmagan tillar sobit algoritmlar (jadval tillari va hisobot generatorlari) va operatsion tizimlar bilan aloqa qilish tillari yordamida qayta ishlangan ma'lumotlarni tashkil qilishni tavsiflovchi tillar guruhini tashkil qiladi.
Vazifani ham, uni hal qilish uchun zarur bo'lgan harakatlarni ham aniq tasvirlash imkonini beradigan qarorlar jadvallari har qanday harakatga o'tishdan oldin qanday shartlar bajarilishi kerakligini aniq belgilashga imkon beradi. Muayyan vaziyatni tavsiflovchi bitta qaror jadvali yechim algoritmlarini amalga oshirishning barcha mumkin bo'lgan blok diagrammalarini o'z ichiga oladi.
Jadvalli usullarni har qanday kasb mutaxassislari osongina o'zlashtiradilar. Jadvalli tilda yozilgan dasturlar tizimni tahlil qilish jarayonida yuzaga keladigan murakkab vaziyatlarni qulay tarzda tasvirlab beradi.
Dasturlash tillari turli maqsadlarga xizmat qiladi va ularning tanlovi foydalanuvchining qulayligi, ma'lum bir kompyuterga va berilgan vazifaga muvofiqligi bilan belgilanadi. Kompyuter uchun masalalar esa juda xilma-xil bo'lishi mumkin: hisoblash, iqtisodiy, grafik, ekspert va boshqalar. Kompyuter tomonidan hal qilinadigan masalalarning bu xilma-xilligi dasturlash tillarining xilma-xilligini belgilaydi. Dasturlashda muammoning sinfi, dasturchining darajasi va qiziqishlaridan kelib chiqqan holda individual yondashuv bilan eng yaxshi natijalarga erishiladi.

Basic va Visual Basic dasturlash tillarining yaratilish tarixi

Basic dasturlash tili 1964 yilda Dartmut kollejining ikki professori Jon Kenemi va Tomas Kurts tomonidan talabalarga dasturlash ko'nikmalarini o'rgatish uchun yaratilgan. Til shunchalik sodda va tushunarli bo'lib chiqdiki, bir muncha vaqt o'tgach, u boshqa ta'lim muassasalarida qo'llanila boshlandi. 1975 yilda, birinchi mikrokompyuterlar paydo bo'lishi bilan, asosiy estafetani Microsoft asoschilari Bill Geyts va Pol Allen egalladi. Aynan ular birinchi Altair kompyuterlari (MITS Altairs) uchun 4KB operativ xotirada ishlashga qodir Basicning yangi versiyasini yaratdilar. Vaqt o'tishi bilan aynan shu versiya dunyodagi eng mashhur dasturlash tillaridan biriga aylandi. Shon-shuhrat cho'qqisiga chiqish yo'lida Basic ko'p qiyinchiliklarga duch keldi, u doimo sharaf bilan yengib chiqdi va birinchi shaxsiy kompyuterlar IBM PC paydo bo'lgach, u dasturlashda standart bo'ldi, lekin GW-Basic shaklida. Keyin Turbo Basic, QuickBasic, Basic PDS bor edi, lekin har doim tilning yangi versiyasini ishlab chiqishda oldingi versiyalar bilan moslik saqlanib turdi va deyarli birinchi Basic uchun yozilgan dastur (kichik o'zgarishlar bilan) uning keyingi versiyalarida yaxshi ishlashi mumkin edi. til. Ammo yangi vaqtlar keldi va 90-yillarning boshlarida Microsoft Windows operatsion tizimi yangi grafik foydalanuvchi interfeysi (GUI) bilan paydo bo'ldi.

Dasturchilarning hayoti jahannamga aylandi. Oddiy dasturni yaratish uchun siz bir nechta kod sahifalarini yozishingiz kerak edi: menyular va oynalar yaratish, shriftlarni o'zgartirish, xotirani tozalash, "chizish" tugmalari va boshqalar. Biroq, yangi interfeysning afzalliklari shu qadar shubhasiz ediki, ushbu operatsion tizimning uchinchi versiyasi allaqachon shaxsiy kompyuter uchun haqiqiy standartga aylandi. Bu vaqtda Microsoft kompaniyasida Windows uchun yangi dasturlash tilini yaratish bo'yicha bir nechta parallel loyihalar amalga oshirildi. Va 1991 yilda "endi hatto yangi boshlovchi dasturchilar ham Windows uchun ilovalarni osongina yaratishi mumkin" shiori ostida yangi Microsoft Visual Basic vositasining birinchi versiyasi paydo bo'ldi. O'sha paytda Microsoft ushbu tizimning imkoniyatlarini juda kamtarona baholadi va uni birinchi navbatda yangi boshlanuvchilar va professional bo'lmagan dasturchilar toifasiga qaratdi. O'sha paytdagi asosiy vazifa bozorga o'sha paytda juda yangi Windows muhitida oddiy va qulay ishlab chiqish vositasini chiqarish edi, bu dasturlash hatto tajribali mutaxassislar uchun ham muammo edi. Visual Basic ishlab chiquvchilari tomonidan yaratilgan dasturlash tizimi Windows-ning murakkab ichki tuzilmasidan "orqaga qaytish" va bolalar qurilish to'plamidagi kabi "kublardan" dasturlarni yaratishga imkon berdi. Menyular, oynalar, ro'yxatlar, tugmalar, matn kiritish maydonlari va boshqa Windows interfeys elementlari dasturga oddiy sudrab tashlash operatsiyalari yordamida qo'shilgan.

VB dasturchilari ushbu tilni o'rganishni boshlaganidan keyin bir necha daqiqa ichida o'zlarining birinchi dasturlarini yaratdilar! Bundan tashqari, Visual Basic ishlab chiquvchilarga standart ob'ektlar bilan bir qatorda dasturlarda ham foydalanish mumkin bo'lgan yangi "kub" ob'ektlarni yaratishga imkon berdi. Garchi ko'pgina C dasturchilari Microsoftning Windows dasturlarini ishlab chiqish uchun oddiy va tushunarli vositani yaratishga urinishlariga jimgina kulishsa ham, Visual Basic butun dunyo bo'ylab o'zining g'alabali yurishini boshladi va bu jarayonni hech narsa to'xtata olmadi. Yakuniy to'siqlar 1994 yilda Visual Basic for Applicationsning chiqarilishi bilan tushib ketdi. Aynan o'sha paytda, Microsoft Office-ga VBA kiritilgandan so'ng, Basic Windows uchun asosiy dasturlash standartlaridan biriga aylana boshladi. Microsoft uchun asosiy til bir vaqtning o'zida Altair 8800 kompyuterining asosiy versiyasini ishlab chiqish uning asoschilari Bill Geyts va Pol Allenning dasturlash karerasining boshlanishi edi. Shuning uchun, bir vaqtning o'zida - 1989 yilda, turli kompaniyalar o'rtasida turli dasturlash tillarida ishlab chiqish muhitlarini yaratishning asosiy yo'nalishlarini taqsimlash vaqti kelganida, Microsoft QuickBasic-ni saqlab qoldi - Basic-da dasturlarni ishlab chiqish uchun muhit, masalan, bundan keyin ham rad etdi. Paskal dasturlash tili ustida ishlash, uni Borlandga qoldirdi, bu esa, o'z navbatida, uning Basic versiyasi ustida ishlashni to'xtatdi (keyinchalik Paskal Delphi tiliga aylandi).

Dastlab o'yinchoq sifatida mo'ljallangan Microsoft Visual Basic dasturlash dunyosini bo'ron bilan qamrab oldi. Uning mashhurligi ikki sababga bog'liq: nisbiy soddalik va mahsuldorlik. VB dasturlari C/C++ dagi hamkasblariga qaraganda sekinroq, lekin ular hali ham ko'pgina biznes maqsadlari uchun etarlicha tez va ishlab chiqish vaqtini ancha kam talab qiladi. Shakllar VB Windows dasturchilariga taklif qilgan bir xil kuch sarflaydigan abstraksiya edi. VB IDE asboblar panelidagi tugmalar va roʻyxat qutilari kabi boshqaruv elementlarini shaklga sudrab olib, oynalarni grafik tarzda loyihalash imkonini berdi. Shaklning ko'rinishidan mamnun bo'lganingizdan so'ng, kod tomoniga o'tishingiz va har bir shakl boshqaruvi uchun hodisa ishlov beruvchilarini yozishingiz mumkin.

Shunday qilib, VB-da dasturni ishlab chiqish bir-biri bilan gaplashadigan va kerakli ma'lumotlar uchun ma'lumotlar bazasiga murojaat qiladigan bir nechta shakllarni yaratishdan iborat edi. Natijada paydo bo'lgan shakl deraza bo'lib chiqdi, bu derazalash usullaridan foydalanishning ancha qulay usulini taklif qildi. VB ba'zi yashirin C/C++ sintaksisini olib tashlash orqali xatolarni kamaytirdi. Maxsus holatlar bundan mustasno, ifodalar bitta kod satri bilan chegaralangan va o'zgaruvchilar alohida kod satrlarida e'lon qilinishi va ishga tushirilishi kerak edi. Belgilash va taqqoslash operatorlari bir xil belgidan foydalangan, ammo VB grammatikasi bu operatorlardan maqsadni aniq ko'rsatadigan tarzda ishlatilishini talab qilgan.

Ehtimol, eng muhimi, hech qanday ko'rsatgich yo'q edi - Microsoft BASIC ning birinchi versiyalaridan beri Bill Geytsning talabi. Ko'rsatkichlar foydali bo'lsa-da, chunki ular istalgan manzilda xotiraga to'g'ridan-to'g'ri kirish imkonini beradi, lekin ulardan foydalanish ehtiyotkorlik bilan ishlatilmasa, xatolarga moyil bo'ladi. BASIC-ning grammatik soddaligiga bo'lgan talabi uning dastlab o'qitish tili sifatida yaratilganligidan kelib chiqadi: "Boshlang'ichlar uchun universal ramziy o'quv kodi." VB 6-versiyasi allaqachon kuchli til bo'lib, undan tarqatilgan ilovalarni yaratishda foydalanish mumkin. COM komponentlari va Microsoft Transaction Server mijoz-server arxitekturasi uchun uch bosqichli yondashuvni taklif qildi, unda nozik foydalanuvchi interfeyslari ma'lumotlar bazasidan yoki boshqa mashinadan ma'lumotlarni olish uchun masofaviy VB komponentlari bilan o'zaro ta'sir qiladi.

VBScript va VBA (VB for Applications) dan foydalanib, siz veb-brauzerlar uchun skriptlar yozishingiz va Microsoft Office ilovalarini avtomatlashtirishingiz mumkin. Bundan tashqari, VB6 Internet Explorer bilan ishlaydigan Active-X boshqaruvlarini yaratish uchun ishlatilishi mumkin, garchi bu kamdan-kam hollarda amalga oshiriladi, chunki u Internet mijoz mashinasida VB ish vaqti DLL-ni o'rnatishni talab qiladi. VB5 dan boshlab, VB dasturlari mashina kodiga kompilyatsiya qilindi, lekin ular keng tarqalgan ishlatiladigan funktsiyalarni ta'minlovchi va VB ob'ekt imkoniyatlarini amalga oshiruvchi DLL dan foydalanishga asoslangan edi. Qizig'i shundaki, VB kompilyatori tarjima uchun ko'p o'tish rejimidan foydalanadi va oxir-oqibat oraliq tilga kompilyatsiya qilingandan so'ng mashina kodini chiqarish uchun Microsoft C++ kompilyatoriga tayanadi. .NET ning urug'lari VB ning ushbu xususiyatida ko'rinadi - ish vaqti kutubxonasidan va C++ serveridan foydalanish.

C# dasturlash tilining yaratilish tarixi

C# tili 2000 yil iyun oyida Anders Xeylsberg boshchiligidagi Microsoft dasturchilarining katta guruhining mashaqqatli mehnati natijasida dunyoga keldi. Bu odam IBM shaxsiy kompyuterlari uchun tuzilgan birinchi dasturlash tillaridan biri - Turbo Paskal muallifi sifatida tanilgan. Ehtimol, sobiq Sovet Ittifoqi hududida ko'plab tajribali dasturchilar va oddiygina universitetlarda u yoki bu shaklda dasturlashni o'rgangan odamlar ushbu mahsulotning jozibasi va foydalanish qulayligini his qilishgan. Bundan tashqari, Borland korporatsiyasida ishlaganda Anders Xeylsberg Delphi integratsiyalashgan muhitini yaratish bilan mashhur bo'ldi (u bu loyihani 4.0 versiyasi chiqarilgunga qadar boshqargan).
C# tilining paydo bo'lishi va .NET tashabbusi 2000 yil yozining boshida sodir bo'lganligi tasodif emas edi. Aynan shu paytda Microsoft xabar almashish va ma'lumotlar almashinuvi sohasida yangi komponentli texnologiyalar va yechimlarning sanoat versiyalarini tayyorladi. shuningdek, Internet ilovalarini yaratish (COM+, ASP+, ADO+, SOAP, Biztalk Framework). Shubhasiz, ushbu yangi mahsulotlarni targ'ib qilishning eng yaxshi yo'li ishlab chiquvchilar uchun ularning to'liq qo'llab-quvvatlashi bilan asboblar to'plamini yaratishdir. Bu yangi C# tilining asosiy maqsadlaridan biridir. Bundan tashqari, Microsoft endi bir xil vositalar va ishlab chiqish tillarini kengaytira olmadi, bu ularni zamonaviy uskunani qo'llab-quvvatlash va 1990-yillarning boshida yaratilgan mahsulotlar bilan orqaga qarab muvofiqlikni saqlash kabi qarama-qarshi talablarni qondirish uchun tobora murakkablashtirdi. Windowsning birinchi paydo bo'lishi paytida. Ishlab chiquvchiga zamonaviy dasturiy mahsulotlarni osongina yaratishga imkon beradigan oddiy, ammo murakkab tillar, muhitlar va ishlab chiqish vositalarini yaratish uchun noldan boshlash kerak bo'lgan vaqt keladi.

C# va .NET boshlang'ich nuqtasidir. Oddiy qilib aytganda, .NET - bu yangi platforma, Windows-da dasturlash uchun yangi API va C# - bu platforma bilan ishlash va rivojlanish muhiti taraqqiyotidan to'liq foydalanish uchun boshidan yaratilgan yangi til. so'nggi 20 yil davomida ob'ektga yo'naltirilgan dasturlash tamoyillarini tushunish.
Shuni ta'kidlash kerakki, orqaga qarab muvofiqlik yo'qolmaydi. Mavjud dasturlar ishlaydi va .NET platformasi mavjud dasturiy ta'minot bilan ishlash uchun mo'ljallangan. Windows-dagi komponentlar o'rtasidagi aloqa endi deyarli to'liq MAQOMOTI yordamida amalga oshiriladi. Shuni hisobga olgan holda, .NET (a) .NET komponentlari ular bilan gaplashishi uchun mavjud MAQOMOTI komponentlari atrofida oʻramlarni yaratish va (b) .NET komponentlari atrofida oddiy MAQOMOTI komponentlariga oʻxshab koʻrinishi uchun oʻramlarni yaratish imkoniyatiga ega.

C# mualliflari zamonaviy ob'ektga yo'naltirilgan tillarning (Java kabi) soddaligi va ifodaliligini C++ ning boyligi va kuchi bilan birlashtirgan tilni yaratishga intilishdi. Anders Xeylsbergning so'zlariga ko'ra, C# o'zining ko'p sintaksisini C++ dan oladi. Xususan, u tuzilmalar va ro'yxatlar kabi qulay ma'lumotlar turlarini o'z ichiga oladi (C++ ning yana bir avlodi - Java - bu elementlardan mahrum, bu esa dasturlashda ma'lum noqulayliklar yaratadi). C# sintaktik konstruksiyalari nafaqat C++ dan, balki Visual Basic dan ham meros bo‘lib qolgan. Masalan, C#, xuddi Visual Basic kabi, sinf xususiyatlaridan foydalanadi. C++ singari, C# ham siz yaratgan turlar uchun operatorni ortiqcha yuklashga imkon beradi (Java ikkala xususiyatni ham qo'llab-quvvatlamaydi). C# aslida turli tillarning gibrididir. Shu bilan birga, C# tili sintaktik jihatdan Java’dan kam emas (agar ko‘p bo‘lmasa) toza, Visual Basic kabi sodda va C++ bilan deyarli bir xil kuch va moslashuvchanlikka ega.

C# ning xususiyatlari:

Asosiy turlarning to'liq va aniq belgilangan to'plami.
- XML ​​hujjatlarini avtomatik yaratish uchun o'rnatilgan yordam. Dinamik ravishda ajratilgan xotirani avtomatik ravishda chiqarish.
- Foydalanuvchi tomonidan belgilangan atributlar bilan sinflar va usullarni belgilash qobiliyati. Bu hujjatlar uchun foydali bo'lishi mumkin va kompilyatsiya jarayoniga ta'sir qilishi mumkin (masalan, faqat disk raskadrovka rejimida kompilyatsiya qilinishi kerak bo'lgan usullarni belgilashingiz mumkin).
- .NET asosiy sinf kutubxonasiga to'liq kirish, shuningdek, Windows API-ga oson kirish (agar sizga haqiqatan ham kerak bo'lsa).
- Agar kerak bo'lsa, ko'rsatkichlar va to'g'ridan-to'g'ri xotiraga kirish. Biroq, til shunday yaratilganki, deyarli barcha holatlarda siz usiz qila olasiz.
- VB uslubi xususiyatlari va hodisalarini qo'llab-quvvatlash.
- Kompilyatsiya kalitlarini o'zgartirish oson. ActiveX boshqaruvlari (COM komponentlari) kabi boshqa kod tomonidan chaqirilishi mumkin bo'lgan .NET komponentining bajariladigan fayllarini yoki kutubxonalarini olish imkonini beradi.
- Dinamik ASP.NET veb-sahifalarini yozish uchun C# tilidan foydalanish imkoniyati.

Ushbu til uchun mo'ljallanmagan sohalardan biri bu juda muhim vaqt va yuqori o'tkazuvchanlik dasturlari bo'lib, bunda siklni bajarish uchun 1000 yoki 1050 mashina tsikli kerak bo'ladimi va resurslar zudlik bilan chiqarilishi kerak. C++ ushbu sohadagi eng yaxshi past darajadagi til bo'lib qolmoqda. C# da yuqori unumli ilovalarni yaratish uchun zarur bo'lgan ba'zi asosiy xususiyatlar mavjud emas, masalan, kodning ma'lum nuqtalarida bajarilishi kafolatlangan inline funktsiyalari va destruktorlar. Ushbu til zamonaviy video o'yinlarni yaratish uchun ham faol qo'llaniladi, masalan, Battlefield 3 o'yini qisman C# tilida va butunlay .NET texnologiyasida yozilgan.

Kasper Beyer "Dasturlash tillarining qisqacha to'liq aniq tarixi".

1800

Jozef Mari Jakkard dastgohni perfokartalarni o‘qishni o‘rgatadi va shu tariqa birinchi ko‘p tarmoqli ma’lumotlarni qayta ishlash qurilmasini yaratadi. Uning ixtirosi Skynetning tug'ilishini oldindan bilgan ipak to'quvchilar tomonidan dushmanlik bilan kutib olindi.

1842

Ada Lavleys o'zining ezgu maqsadlariga intilish chog'ida zerikib ketdi. U daftarida keyinchalik birinchi nashr etilgan kompyuter dasturi sifatida tanilgan narsaning eskizini chizdi. Faqatgina noqulaylik shundaki, kompyuter hali ixtiro qilinmagan.

1936

Alan Turing hamma narsani o'ylab topadi, ammo bu uni kimyoviy kastratsiyaga hukm qilgan Britaniya sudi oldida oqlamaydi.

Keyinchalik malika uni kechirdi, ammo, afsuski, u o'sha paytda allaqachon vafot etgan edi.

1957

Jon Backus haqiqiy dasturchilar tomonidan ishlatiladigan birinchi til bo'lgan FORTRANni yaratadi.

1959

Greys Xopper birinchi sanoatga yo'naltirilgan dasturlash tilini ixtiro qildi va uni "umumiy biznesga yo'naltirilgan til" yoki qisqacha COBOL deb ataydi.

1964

Jon Jorj Kemeni va Tomas Kurts dasturlash juda qiyin va ular asoslarga qaytishga qaror qilishdi. Ular o'zlarining dasturlash tillarini BASIC deb atashadi.

1970

Niklaus Virt Paskal tilini ishlab chiqadi. Bu yaratilishda ishtirok etgan bir necha tillardan biri e Wirth: U tillarni yaratishni yaxshi ko'rardi.

U, shuningdek, Virt qonunini ishlab chiqdi, bu Mur qonunini ishlab chiquvchilar uchun ma'nosiz qildi Va dasturlarni shunchalik shishiradiki, hatto meynfreymlar ham ularga yetib bora olmaydi. Bu keyinchalik Electron.js ixtirosi orqali isbotlangan bo'lardi.

1972

Dennis Ritchi Bell Laboratoriyasidagi ishidan zerikdi va jingalak qavslar bilan C yaratishga qaror qildi va loyiha katta muvaffaqiyatga erishdi.Keyinchalik u ishlashni yaxshilash uchun segmentatsiya xatolarini va boshqa ishlab chiquvchilarga qulay xususiyatlarni qo'shdi.

Hali bir necha soat vaqt qolganligi sababli, u Bell Labsdagi do'stlari bilan C tilini namoyish qilish uchun namunaviy dastur yaratishga qaror qilishdi, shuning uchun ular Unix deb nomlangan operatsion tizimni yaratdilar.

1980

Alan Kertis Kay ob'ektga yo'naltirilgan dasturlashni ixtiro qildi va uni Smalltalk deb nomladi. Smalltalk-da hamma narsa ob'ekt, hatto ob'ekt ham ob'ektdir.

1987

Larri Uoll, diniy sohadagi tajribasi bilan voizga aylanadi va uning e th doktrina Perl qiladi.

1983

Jan Devid Ishbia Ada Lavleysning dasturi hech qachon yo'qolmaganini payqadi va til yaratish va uning nomini berishga qaror qildi (Ada). Ammo til ham boshlanmaydi.

1986

Bred Koks va Tom Love Smalltalk asosida C ning o'qilmaydigan versiyasini yaratishga qaror qilishdi. Ular buni Objective-C deb atashdi, lekin uning sintaksisini hech kim tushuna olmaydi.

1983

Byorn Stroustrup kelajakka qaytadi va C tili talab qilishini payqaydi juda oz kompilyatsiya qilish vaqti. U o'zi o'ylaydigan har bir xususiyatni tilga qo'shib, uni C++ deb ataydi.

Dunyo bo'ylab dasturchilar rozi bo'lib, ularga mushuk videolarini tomosha qilish va ishda xkcd o'qish uchun ajoyib bahona beradi.

1991

Gido van Rossum jingalak qavslarni yoqtirmaydi, shuning uchun u ixtiro qiladi. Til sintaksisini tanlashda muallif Monty Python va uning uchuvchi sirkidan ilhomlangan.

1993

Roberto Ierusalimski va uning do'stlari mahalliy, braziliyalik skript tiliga muhtoj deb qaror qilishdi. IN Mahalliylashtirish paytida xatolik yuz berdi, bu indekslarni 0 o'rniga 1 dan hisoblashni boshlashiga olib keldi. Bu til Lua deb ham atalgan.

1994

Rasmus Lerdorf o'zining CGI bosh sahifa skriptlari uchun shablon mexanizmini yaratadi va uning nuqta fayllarini Internetda chiqaradi.

Dunyo bu nuqta fayllarni hamma joyda ishlatishga qaror qiladi va Rasmus g'azablangan holda ularga qo'shimcha ma'lumotlar bazasi ulanishlarini qo'shadi va natijani RHP deb ataydi.

1995

Yukixiro Matsumoto unchalik xursand emasdi va boshqa dasturchilar ham baxtsiz ekanini payqadi. U ularni baxtli qilish uchun Rubyni yaratadi. Ruby yaratgandan so'ng, "Matz" baxtli, Ruby jamoasi baxtli, hamma baxtli.

1995

Brendan Eich dunyodagi har bir veb-brauzerni va oxir-oqibat Skynetni boshqaradigan tilni ishlab chiqish uchun bir kunlik dam oladi. Avvaliga u Netscape-ga kirdi va bu til LiveScript deb nomlanganini aytdi, ammo kodni ko'rib chiqish jarayonida Java mashhurlikka erishdi, shuning uchun qaror qilindi jingalak qavslardan foydalaning va tilni JavaScript-ga o'zgartiring.

Ma'lum bo'lishicha, Java savdo belgisi bo'lib, muammolarga olib kelishi mumkin, shuning uchun JavaScript keyinchalik ga o'zgartirildi, lekin u hali ham eski nom bilan ataladi.

1996

Jeyms Gosling Java-ni ixtiro qildi, bu birinchi haqiqiy batafsil ob'ektga yo'naltirilgan dasturlash tili bo'lib, unda dizayn naqshlari pragmatizmdan ustun turadi.

2001

Anders Xeylsberg Java-ni qayta ixtiro qiladi va C# tilini chaqiradi, chunki C tilida dasturlash Java-da dasturlashdan ko'ra sovuqroq ko'rinadi. Java-ning yangi versiyasi hammaga yoqadi, chunki u Java-dan butunlay farq qiladi.

2005

David Heinemeier Hansson keyinchalik Ruby on Rails deb nomlangan veb-ramkani yaratadi. Odamlar bu ikki xil narsa ekanligini unutishadi.

2006

Jon Resig JavaScript yordamchi kutubxonasini yozadi. Hamma buni til deb hisoblaydi va Internetdan jQuery kodini nusxa ko'chirish orqali martaba qiladi.

2009

Ken Tompson va Rob Pike C tiliga o'xshash, ammo ko'proq sotiladigan, ko'proq xavfsizlik vositalari va maskot sifatida Gophers bilan til yaratishga qaror qilishdi.

Ular bu tilni Go deb atashadi, uni ochishga qaror qilishadi va markali tizzalar va Gopher dubulg'alarini sotishni boshlashadi.

2010

Greydon Xoare ham C tiliga o'xshash til yaratmoqchi. U uni Rust deb ataydi. Har bir inson o'z dasturiy ta'minotining har bir qismini Rustda darhol qayta yozishni talab qiladi. Greydon yanada yorqinroq narsani xohlaydi va Apple uchun Swift ustida ishlay boshlaydi.

2012

Anders Xeylsberg veb-brauzerlarda C# tilini yozmoqchi. U TypeScript-ni yaratadi, bu asosan JavaScript-ni ko'proq Java-ga ega.

2013

Jeremi Ashkenas Ruby dasturchilari kabi baxtli bo'lishni xohlaydi, shuning uchun u CoffeeScript-ni yaratadi, u JavaScript-ga tarjima qilinadi, lekin Rubyga ko'proq o'xshaydi. Jeremi hech qachon Matz va Ruby dasturchilari kabi chinakam baxtli bo'lmagan.

2014

Kris Latner Swift-ni yaratadi, uning asosiy maqsadi Objective-C bo'lish emas. Oxir oqibat, bu til Java tiliga o'xshaydi.

Eslatma 1

Birinchi dasturlarning ishlashi uchun hisoblash moslamasining old panelida kalit kalitlarni o'rnatish kerak edi. Tabiiyki, bu usul yordamida faqat kichik dasturlarni tuzish mumkin edi. To'liq huquqli dasturlash tilini yaratishga birinchi urinishlardan biri 1943-1945 yillarda nemis olimi Konrad Zuze tomonidan qilingan. plankalkul tilini ishlab chiqdi. Plankalkul juda istiqbolli til edi, u aslida yuqori darajali til edi, lekin urush davrida u tegishli amaliy amaliyotga ega bo'lmadi va uning tavsifi faqat 1972 yilda nashr etildi.

Mashina kodi. Assembler

Dasturlash tillarining tarixi mashina tilining rivojlanishi bilan boshlanadi: mantiqiy nol va bir til. Bu tilda yozish juda qiyin va zerikarli edi.

1940-yillarning oxirida dasturchilarning ishini osonlashtirish uchun. Assambleya tili ishlab chiqilgan. Har qanday buyruqni bildiruvchi ikkilik raqamlar o'rniga qisqa so'zlar yoki qisqartmalar yozildi. Dasturchilar assembler tilini past darajadagi dasturlash tili deb hisoblashadi, chunki u eng quyi darajadagi tilga, ya’ni mashina tiliga yaqin. Assembler tilida yozilgan dasturlar ma'lum bir protsessorning xususiyatlariga bevosita bog'liq, shuning uchun u mashinaga yo'naltirilgan til deb ataladi.

Assembler tilida dasturlar yozish juda qiyin ish bo'lib, kompyuter qurilmalarini bilish ham talab qilinadi. Va shunga qaramay, assembler dasturlari eng samarali va samarali hisoblanadi.

Algoritmik tillar

Dasturlashni ishlab chiqish jarayonida tabiiy tillarga o'xshash va mashina buyruqlari bilan to'g'ridan-to'g'ri ishlamaslikka imkon beradigan yangi, yanada rivojlangan dasturlash tillarini ishlab chiqish zarurati paydo bo'ldi. Ular yuqori darajadagi tillar deb atala boshlandi. Yuqori darajadagi tillar algoritmlarni tavsiflashga qaratilgan, shuning uchun ular algoritmik tillar deb ataladi. Bunday tillarning afzalligi ma'lum bir kompyuterdan ko'proq ravshanlik va mustaqillikdir.

Kompyuter faqat mashina tilini tan olganligi sababli, algoritmik tilda yozilgan dasturni bajarishdan oldin ushbu tilga maxsus dastur - tarjimon tomonidan tarjima qilinishi kerak. Tarjimonda algoritmik tilning barcha qoidalari va uning turli tuzilmalarini mashina tiliga aylantirish usullari mavjud. Eshittirishning ikki turi mavjud:

  • Kompilyatsiya - bu dasturni bajarish usuli bo'lib, unda dastur ko'rsatmalari faqat butun dastur matnining tarjimasi kompilyatsiya qilinganda bajariladi.
  • Interpretatsiya - bu dasturni bajarish usuli bo'lib, unda dastur ko'rsatmalari tarjima qilinadi va darhol bajariladi.

Eslatma 2

Algoritmik tilda yozilgan dasturlarning afzalligi - yozishning nisbatan soddaligi, oson o'qilishi va uni tuzatish imkoniyati tufayli dastur bilan ishlashning soddalashtirilganligi. Kamchiliklarga quyidagilar kiradi: efirga uzatish uchun qo'shimcha vaqt va xotira.

Strukturaviy dasturlash

1954 yilda birinchi yuqori darajadagi til kompilyatorini yaratish boshlandi. Ikki yil o'tgach, Fortran tili paydo bo'ldi (FORmula TRANslator - "formula tarjimoni"). Til rivojlanishni sezilarli darajada soddalashtirgan xususiyatlarni o'z ichiga olgan, ammo Fortranda dasturlash oson ish emas edi: qisqa dasturlarda tushunish oson bo'lsa-da, katta dasturlarga kelganda til o'qib bo'lmaydigan bo'lib qoldi. Shunga qaramay, til juda muvaffaqiyatli bo'ldi va ko'plab versiyalar chiqarildi.

Muammolar tizimli dasturlash tillari ishlab chiqilgandan so'ng hal qilindi: ular dastur bloklarini, mustaqil pastki dasturlarni yaratish qobiliyatini, rekursiya va mahalliy o'zgaruvchilarni qo'llab-quvvatlashni va shartsiz o'tish operatorining (GoTo) yo'qligini kiritdi. Shunday qilib, bunday tillar dasturni uning tarkibiy qismlariga bo'lish qobiliyatini qo'llab-quvvatlay boshladi.

O'n yil davomida juda ko'p yangi tillar yaratildi:

  1. Algol (1958) alohida bloklardan tashkil topgan algoritmlarni yozish uchun mo'ljallangan;
  2. Cobol (1959) boshqaruv va biznes sohalarida ommaviy ma'lumotlarni qayta ishlash uchun ishlatilgan;
  3. Basic (1965) oddiy dasturlarni yozish imkonini berdi va dasturlash asoslarini o‘rgatishda foydalanildi.

Yaratilgan tillarning juda oz qismi tuzilgan. Ixtisoslashgan tillar ham yaratilgan: Lisp, Prolog, Forth va boshqalar. Ayniqsa, olim Blez Paskal nomi bilan atalgan Paskal tili (1970) e'tiborga loyiq bo'lib, u ham o'rganish, ham turli murakkablikdagi muammolarni hal qilish uchun ishlatilgan. Paskal dasturlarini o'qish oson bo'lib, xatolarni tezda topish va tuzatish imkonini berdi va u yaxshi tuzilgan edi. Yuqorida aytilganlarning barchasi uning keng qo'llanilishiga olib keldi va bugungi kunda ham u ta'lim muassasalarida faol qo'llanilmoqda.

1972 yilda C tili joriy etildi, bu dasturlashda muvaffaqiyatli qadam bo'ldi. Til ko'plab tillarning afzalliklarini birlashtirgan va juda ko'p turli xil yangiliklarga ega edi. Uni o'rganishning keng imkoniyatlari, tuzilishi va nisbatan soddaligi tilning tezda tan olinishi va asosiy tillardan birining o'rnini egallashiga imkon berdi.

Strukturaviy dasturlashning paydo bo'lishi ajoyib natijalar berdi, ammo uzoq va jiddiy dasturlarni yozish hali ham qiyin edi.

Ob'ektga yo'naltirilgan dasturlash (OOP)

1970-yillardan beri Ob'ektga yo'naltirilgan dasturlash (OOP) asoslari qo'yildi, ular protsessual dasturlashning rivojlanishi natijasida paydo bo'lgan, bunda ma'lumotlar va ularni qayta ishlash tartiblari rasmiy ravishda bog'liq emas edi.

OOP quyidagi asosiy tushunchalarni o'z ichiga oladi:

  • Sinf- hali mavjud bo'lmagan ob'ekt modeli. Aslida, bu ob'ektning sxemasi bo'lib, uning tuzilishini tavsiflaydi.
  • Ob'ekt- sinfning namunasi, sinfning namunasi yaratilganda paydo bo'ladigan hisoblash tizimining manzil maydonidagi ob'ekt.
  • Abstraktsiya- ob'ektga uning chegaralarini aniq belgilaydigan, uni boshqa barcha ob'ektlardan ajratib turadigan xususiyatlarni berish. Asosiy g'oya kompozit ma'lumotlar ob'ektlaridan foydalanish usullarini ularni oddiyroq ob'ektlar shaklida amalga oshirish tafsilotlaridan ajratishdir.
  • Inkapsulyatsiya– ob’ekt ma’lumotlarini dasturning qolgan qismidan yashirish va ob’ektning yaxlitligi va mustaqilligini ta’minlash maqsadida sinfdagi xususiyatlar (ma’lumotlar) va usullarni (muntazamlarni) birlashtirish (ob’ekt xususiyatlarini o’zgartirish faqat sinfning maxsus usullari yordamida mumkin).
  • Meros olish- mavjud sinf (yoki sinflar) asosida yangi xususiyatlar va usullarni qo'shgan holda yangi sinfni tavsiflash imkonini beruvchi til mexanizmi.
  • Polimorfizm- tizimning bir xil interfeysga ega ob'ektlardan uning turi va ichki tuzilishi haqida ma'lumot olmasdan foydalanish qobiliyati.

Eslatma 3

1967 yilda Simula tili paydo bo'ldi - birinchi dasturlash tili, unda ob'ektga yo'naltirish tamoyillari taklif qilindi. U ob'ektlar, sinflar, virtual usullar va boshqalar bilan ishlashni qo'llab-quvvatladi, ammo bu xususiyatlarning barchasi zamondoshlar tomonidan etarlicha baholanmadi. Biroq, bu tushunchalarning aksariyati Alan Kay va Den Ingalls tomonidan Smalltalk tiliga kiritilgan bo'lib, u birinchi keng tarqalgan ob'ektga yo'naltirilgan dasturlash tiliga aylandi.

Hozirgi vaqtda ob'ektga yo'naltirilgan paradigmani amalga oshiradigan amaliy dasturlash tillari soni boshqa paradigmalarga nisbatan eng katta. OOP kontseptsiyasini qo'llab-quvvatlaydigan asosiy tillar: C++, C#, Object Pascal (Delphi), Java va boshqalar.

Internetni rivojlantirish

WWW (World Wide Web) texnologiyasining rivojlanishi bilan Internet juda mashhur bo'ldi. Internet bilan ishlash, veb-sayt dizayni, resurslarga kirish va hokazolarni ta'minlash uchun ko'plab yordamchi tillar yaratilgan.

O'zining soddaligi va boshqa platformalarga oson ko'chirilishi bilan ajralib turadigan Perl tarjima tili keng tarqalmoqda. U turli murakkablikdagi ilovalar va CGI skriptlarini yozish uchun mo'ljallangan. Java tili ham keng qo'llaniladi va Internetning rivojlanishi va faoliyatida muhim rol o'ynaydi.

1970-yillarda SQL tili paydo bo'ldi - ma'lumotlar bazalariga kirish va ular bilan ishlash uchun yaratilgan tuzilgan so'rovlar tili.

Veb-sayt sahifalari uchun kodlarni yozish uchun HTML gipermatn belgilash tili ishlab chiqilgan bo'lib, unda matn va grafiklarni belgilash va formatlash buyruqlari mavjud. Saytni yanada jozibali va funktsional qilish uchun quyidagilar qo'llaniladi:

  • JavaScript skriptlari foydalanuvchining veb-brauzerida ishlaydi va asosan sayt ko'rinishini yaxshilash va kichik muammolarni hal qilish uchun ishlatiladi.
  • Server tomonida bajariladigan va allaqachon qayta ishlangan ma'lumotlarni foydalanuvchi brauzeriga yuboradigan PHP skriptlari. Ular dinamik HTML sahifalarini, mehmonlar kitoblarini yaratish, forumlar va so'rovlarni yuritish uchun ishlatiladi.
  • Asosan Perl, C/C++ da yozilgan CGI skriptlari server tomonida bajariladi va foydalanuvchining muayyan harakatlariga bog'liq. Ular PHP skriptlari kabi dinamik HTML sahifalarini, mehmonlar kitoblarini yaratish, forumlar va so'rovlarni yuritish uchun ishlatiladi.