Dasturlash tillari
Dasturlash tillari tarixi
Download 240.03 Kb. Pdf ko'rish
|
5-maruza-2
Dasturlash tillari tarixi
Shuni aytish mumkinki, dasturlash tillari zamonaviy electron hisoblash mashinalari paydo bo’lguniga qadar ham mavjud bo’lgan: XIX asrda yaratilgan qurilmalar, masalan, metal silindr vositali musiqali quticha (keyinchalik mexanik pianino) va karton karta vositasida ishlovchi Jakkard tikuv stanogi (1804) kabilarni
4 shartli ravishda dasturlanuvchi deb atash mumkin edi. Ularni boshqarish uchun predmetli-yo’naltirilgan dasturlash tillari prototiplari deb hisoblash mumkin bo’lgan zamonaviy klassifikatsiyalar doirasidagi instruksiyalar nabori qo’llanilgan. 1842 yil Ada Avgusta grafinya Lavleys tomonidan Charlz Bebbidj analitik mashinalari uchun Bernulli sonlarini hisoblovchi dastur yozgan tilni dunyodagi birinchi bug’ dvigatellli mexanik kompyuterda realizatsiya qilish mumkin bo’lgan. 1930-1940 yillarda algoritmlarni rasmiylashtirish uchun A.Chyorch, A. Tyuring, A. Markovlar matematik abstraksiya (lyambda-hisoblash, Tyuring mashinasi, normal algoritmlar)ni yaratishdi. Xuddi shu vaqtlar, 1940 yillarga kelib, electron raqamli kompyuterlar paydo bo’ldi va EHMlar uchun birinchi yuqori darajali dasturlash tili deb atash mumkin bo’lgan til - Plankalkül, nemis injeneri K.Suzi tomonidan 1943-1945 yillarda yaratildi. UNIVAC va IBM 701 kabi EHM dasturchilari 1950-yillar boshlarida dastur yaratishda bevosita mashina kodalaridan foydalanishgan, ularda nol va birlardan iborat dasturlar yozilgan va bu tillar birinchi avlod dasturlash tillari deb hisoblangan (bunda turli mashinalarda turli yaratuvchilar turlicha kodlarni ishlatishganligi sababli bir EHMdan boshqasiga o’tkazish uchun bu dasturlarni qayta yozishga to’g’ri kelgan). 1949 yillarda birinchi amaliy tadbiq etilgan, “Qisqa kod” deb ataluvchi tilda amallar va o’zgaruvchilar ikki belgili birikmalar orqali kodlangan. Bu til UNIVAC ni yaratgan Tyuring xodimlaridan biri Djon Mokli tomonidan Eckert–Mauchly Computer Corporation kompaniyasida yaratilgan. Mokli o’z xodimlariga matematik formulalar translyatorini ishlab chiqishni topshiradi, lekin bu 1940-yillarda anchagina murakkab hisoblanar edi. Qisqa kod interpretator yordamida realizatsiya qilingan. Tez orada bu usuldagi dasturlash ikkinchi avlod dasturlash tillarining yaratilishi bilan o’zgardi. Ikkinchi avlod dasturlash tillari ham aniq bir mashinalar uchun ixtisoslashganligi bilan chegaralangan bo’lsada, mashina kodlarining belgili (mnemonik) ifodalanishi va mashina xotirasida nomlarning adreslarga joylashtirilish imkoniyatidan foydalanish hisobiga foydalanuvchi uchun ancha soddalashgan holatga keltirildi. Bu tillar assembler tillari va avtokodlar nomi bilan mashhur. Biroq assemblerni qo’llashda dasturni mashina tiliga o’girish jarayoni zarur bo’lgan va buning uchun maxsus dasturlar ishlab chiqilgan hamda ular ham assemblerlar nomini olgan. Shu bilan birga bir mashnadan boshqasiga dasturni ko’chirib o’tish muammosi ham saqlanib qolgan. Bu dasturchidan masalani yechishda “quyi daraja” terminlari – yacheyka, adres, komandalar haqida o’ylashni talab qilar edi. Keyinchalik ikkinchi avlod dasturlash tillari takomillashtirildi: ularda makrokomandalarni qo’llash imkoniyati paydo bo’ldi. 1950-yillar o’rtalariga kelib, Fortran, Lisp, Kobol kabi uchinchi avlod dasturlash tillari paydo bo’la boshladi. Bu tipdagi dasturlash tillari (“Yuqori darajali dasturlash tillari”) universal bo’lib, aniq bir apparat platforma va unda ishlatiladigan mashina kodlariga bog’liq emas edi. Yuqori darajali dasturlash tillarida yozilgan dasturlardan ixtiyoriy EHMlarda foydalanish mumkin (nazariy jihatdan shunday, biroq amalda bir qator ixtisoslashgan versiyalar yoki tilning dialect bo’yicha 5 realizatsiyasini ham hisobga olish kerak), chunki bu dasturlash tillari o’zining translyator (dasturni mashina tiliga o’riguvchi, shundan so’ngina protsessor tomonidan bajariluvchi instrument)lariga ega. Mazkur dasturlash tillarining yangilangan versiyalari hozirgi kunda ham dasturiy ta’minotlarni ishlab chiqishda qo’llanilib kelinmoqda va har biri dasturlash tillarining rivojlanishiga o’z ta’sirini o’tkazib kelmoqda. 1950-yillar oxirlariga kelib, bu sohada bir qator dasturlar uchun asos bo’lib xizmat qilgan Algol dasturlash tili paydo bo’ldi. Shuni qayd etish kerakki, dastlabki dasturlash tillari formati va qo’llanilishiga interfeys cheklanishlari sezilarli ta’sir ko’rsatgan. 1960-1970 yillar
davomida dasturlash tillarining hozirgi
kunda ishlatilayotgan asosiy paradigmasi ishlab chiqilgan. · APL dasturlash tili funksional dasturlashda o’z o’rniga ega bo’lib, massivlar bilan ishlash imkoniyatiga ega bo’lgan birinchi dasturlash tili hisoblanadi. · PL/1 dasturlash tili 1960-yillarda yaratilgan bo’lib, Fortran va Kobol dasturlash tillarining yaxshi xarakteristikalarini o’zida birlashtirgan. · 1960-yillar davomida yaratilib, takomillashtirilgan Snobol dasturlash tili matnlarni qayta ishlash uchun mo’ljallangan. · Taxminan shu vaqtlarda yaratilgan Simula dasturlash tili ob’yektga yo’naltirilgan dasturlashni qo’llash imkoniyatiga ega bo’lgan birinchi dasturlash tili hisoblanadi. 1970-yillar o’rtalarida mutaxassislar guruhi to’liq ob’yektga yo’naltirilgan dasturlash tili Smalltalk tilini taqdim etishdi. · 1963-1973 yillar davomida hozirgi kunda ham mashhur va ko’pchilik ommabop dasturlash tillarining (C++ va Java kabi) paydo bo’lishiga asos bo’lgan C dasturlash tilini yaratish va takomillashtirish ustida ishlar olib borildi. · 1972 yil anchagina mashhur mantiqiy dasturlash tili bo’lgan Prolog dasturlash tili yaratildi. · 1973 yilda ML dasturlash tilida kengaytirilgan polimorf tipiklashgan tizim realizatsiya qilindi, bu tipiklashgan funksional dasturlash tillarining boshlanishiga asos bo’ldi. Har bir dasturlash tili takomillashgan versiyalariga ega va ularning ko’pchiligi zamonaviy dasturlash tillarining yaratilishiga asos bo’lgan. Bundan tashqari 1960-1970 yillarda u yoki bu dasturlash tillarida strukturali dasturlash zaruriyati haqida faol bahslar olib borildi. Xususan, gollandiyalik mutaxassis E. Deykstra barcha yuqori darajali dasturlash tillarida GOTO instruksiyasidan voz kechish zarurligi haqida maqolalari bilan chiqishlar qilgan. Shuningdek, dastur hajmini qisqartirish va dasturchi hamda foydalanuvchi ish samaradorligini oshirish yo’nalishi bo’yicha muvaffaqiyatli ishlar olib borildi. 1980-yillarda shartli ravishda birlashish vaqti deb ataluvchi davr boshlandi. C++ dasturlash tili o’zida ob’yektga yo’naltirilgan dasturlash va tizimli dasturlash xarakteristikalarini birlashtirdi, AQSH hukumati Paskaldan kelib chiqqan, harbiy ob’yektlarni boshqarish tizimida foydalanish uchun Ada dasturlash tili standartini ishlab chiqdi, Yaponiya va boshqa shu kabi davlatlarda mantiqiy dasturlash konstruksiyalarini o’z ichiga olgan beshinchi avlod dasturlash tillarini o’rganish va
6 takomillashtirish uchun sezilarli darajadagi investitsiyalar ajratildi. Funksional dasturlash tillari birlashmasi standart sifatida ML va Lispni qabul qilishdi. Olib borilayotgan ishlardagi muhim yo’nalishlardan biri visual (grafik) dasturlash tillarining yaratilishi bo’ldi. Bunday dasturlash tillarida dasturlarni yozish jarayoni EHM ekranida matnli ko’rinishdan visual (grafik) ko’rinishga almashtirildi. Visual dasturlash tillari dasturlarning ko’rgazmaliligini va inson tomonidan mantiqan to’g’riroq qabul qilinishini ta’minlaydi. 1990 yillarda Internetning faol rivojlanishiga bog’liq ravishda web-sahifalar ssenariylarini yaratish imkonini beruvchi dasturlash tillari ham keng tarqala boshladi. Shunday dasturlash tillariga Unix tizimi uchun skriptlar yozish uchun imkonini beruvchi, ancha rivojlangan Perl dasturlash tili va Java tillarini misol qilish mumkin. Shuningdek, virtuallashgan dasturlash tillari ham ommalashdi. Hozirgi kunda dasturlash tillarining rivojlanish bosqichi xavfsizlik va ishonchlilikni oshirish, kodlarni modulli tashkil qilishning yangi shakllarini yaratish va ma’lumotlar bazasi bilan integratsiyalash yo’nalishlarida davom etmoqda. Ko’pchilik keng tarqalgan dasturlash tillari uchun xalqaro standartlar ishlab chiqilgan. Maxsus tashkilotlar mos dasturlash tillari uchun doimiy ravishda standartlarni yangilab boradi va rasmiy aniqlashlarni e’lon qilib boradi. Zamonaviy dasturlash tillarida ASCII dan foydalaniladi, ya’ni ASCIIning mavjud barcha grafik belgilari ixtiyoriy til instruksiyalarini yozishning yetarli va zaruriy sharti hisoblanadi. ASCII boshqaruv belgilari bilan ishlash chegaralangan: faqatgina karetka qaytarish CR, keying satrga o’tish LF, gorizontal tabulyatsiya HT (ba’zan vertical tabulyatsiya VT va keying sahifaga o’tish FF). Dastlabki dasturlash tillarida 6-bitli belgilar to’plamidan foydalanilgan. Masalan, Fortran alifbosi 49 ta belgini (probel bilan birga) o’z ichiga olgan:
A B C
D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 = + - * / () . , $ ' :
APL bundan mustasno, chunki u juda ko’plab maxsus belgilardan foydalangan. ASCII dan tashqari belgilar (masalan, KOI8 yoki Unicode belgilari) dan foydalanish realizatsiyaga bog’liq bo’lgan: ba’zan bunday belgilardan faqatgina izohlarda va belgili/satrli konstantalarda, ba’zida hatto identifikatorlarda ham foydalanishga ruxsat beriladi. Qo’llaniladigan belgilar to’plamini kengaytirishga dasturiy ta’minotlar bo’yicha ko’pgina loyihalarning xalqaroligi sababli ruxsat beriladi. Bir o’zgaruvchisi rus harflari bilan, boshqasi arab, yana biri xitoy iyerogliflari bilan ifodalangan kod bilan ishlash juda qiyin bo’lar edi. Shu bilan birga matnli ma’lumotlar bilan ishlay oladigan yangi avlod dasturlash tillari (Delphi 2006, C#, Java) Unicode belgilari bilan ham ishlash imkoniyatiga ega. Dasturlash tillari semantikasini aniqlash bo’yicha bir necha yondashuvlar mavjud. Ulardan asosiylari uchta: tizimli, aksiomatik va denotatsion. Tizimli yondashuv doirasidagi semantika tavsifida odatda dasturlash tili konstruksiyasi bajarilishida faraz
qilingan (abstract EHM) yordamida interpretatsiyalanadi. Aksiomatik semantika oldin yoki keyin keluvchi masala shartlari va mantiq 7 yordamida til konstruksiyasining bajarilish natijasini tavsiflaydi. Denotatsion semantika matematika uchun tipik bo’lgan tushunchalarga – ko’phadlar, o’xshashlik, shuningdek, mulohaza, tasdiq va hokazolarga tayanadi. Download 240.03 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling