Dasturlash tillari
Dasturlash tillari klassifikatsiyasi
Download 240.03 Kb. Pdf ko'rish
|
5-maruza-2
Dasturlash tillari klassifikatsiyasi
Dasturlash tillarining umumiy qabul qilingan tizimli taksonomiyasi mavjud emas. Lekin dasturlash tillari klassifikatsiyasini tuzish mumkin bo’lgan umumiy xarakteristikalar mavjud: masalan, texnik xarakteristikalar, ustunlik jihatlari, amaliyotda keng tarqalganligi kabi. Hozirgi kunda ommalashgan zamonaviy dasturlash tillari o’zining kamida bitta ajdodiga ega. Ko’pchilik dasturlash tillari turli dasturlash tillarining bir necha elementlari birikmasidan tashkil topadi. Ba’zi bir hollarda bunday birikmalar matematik tahlil bo’yicha tuzilsa, boshqa hollarda amaliyotdagi talabdan kelib chiqib tashkil etiladi. Dasturlash tillari rasman “daraja” kriteriyasiga ega emas. Shartli ravishda bu atama tilning semantikasi va maqsadli protsessor arxitekturasining mashina kodlari o'rtasidagi farq darajasini bildiradi, lekin tarixda shunday holatlar ham bo’lganki, bir platformada “quyi darajali” hisoblangan dasturlash tilida yozilgan dastur boshqa bir platformada “yuqori darajali” singari kompilyatsiyalangan, yoki “yuqori darajali” hisoblangan dasturlash tillari apparatli realizatsiya qilingan. Eng quyi darajali dasturlash tillariga mashina tillari kiradi. Bularga birinchi avlod dasturlash tillarini misol qilish mumkin. Ulardan keyin “assembler tillari” yoki “avtokodlar” deb ataluvchi ikkinchi avlod dasturlash tillari paydo bo’lgan. Ular mashina tillari ustida mnemonic mexanizmni tasvirlaydi, boshqacha aytganda raqamlardan iborat bo’lgan inson uchun noqulay va uzun komanda kodlari eslab qolish uchun oson harflar birikmalariga almashtirildi, masalan, “STOP” yoki “ADD #1, R1” kabi. Assembler tillarining yana bir muhim jihati uzun sonlar bilan ifodalanadigan xotira yacheykalari, yacheyka nomlari o’rniga yuqori darajali dasturlash tillaridagi kabi o’zgaruvchilarning ishlatilish imkoniyati bo’ldi. Shu bilan birga mashina tillaridan farqli ravishda assemblerdagi matnni mashina tiliga o’tkazuvchi maxsus dasturlarni EHM xotirasiga yuklash va protsessor tomonidan bajarilishini ta’minlash zarur edi. Mazkur dasturning o’zi ham “assembler” nomini oldi (bunda “teskari loyihalash” dasturlari ham mavjud bo’lib, ular mashina kodidagi dasturlarni assembler tiliga o’girib beradi, bu dasturlar dizassmbler deb nomlandi). Ko’pchilik assemblerlar takomillashgan makrotillarga ham ega, shu sababli bu dasturlash tillari ba’zan makroassemblerlar deb ham atalgan. 1970-yillarga kelib dasturlar murakkabligi shu darajada oshdiki, bu dasturchilarning ularni boshqarish imkoniyatlarini oshirdi, axborot texnologiyalari rivoji orqada qola boshladi. Bu muammolar yechimi sifatida murakkabliklarni boshqarishning turli usullarini taqdim etuvchi yuqori darajali dasturlash tillari paydo bo’la boshladi. "Yuqori darajali til" iborasi, bir tomondan, tilning semantik modeli insonning fikrlash xususiyatlarini mashinalarga qaraganda ko'proq hisobga olishini anglatadi (inson o'zini "yuqori" darajaga, mashinani esa "past" darajaga kiritadi). Ushbu atamaning boshqa tushunchasi dastur dizaynlarining ajralmas qismi (batafsil ma'lumot) bilan bog'liq. Quyi darajali dasturlash tilida yozilgan dastur EHM 8 protsessoriga tushunarli soda komandalardan foydalanadi (masalan, ikkita registrning mazmunini qo'shish yoki olib tashlash), shu bilan birga xuddi yuqori darajali dasturlash tillaridagi singari matematik formulalar analogi bo’lgan ifodalarni ham qo’llash mumkin bo’lgan (bu holat birinchi yuqori darajali dasturlash tili nomlanishiga ham o’z ta’sirini o’tkazgan – Fortran, “Formula translyatori”). Yuqori darajali dasturlash tillarida tuzilgan dastur quyi darajali dasturlash tillaridagidan qisqa va inson uchun tushunarli bo’lib, dasturchilar mehnat samaradorligining oshishiga va dasturlardagi xatoliklar soni kamayishiga olib kelgan. Lekin aniq bir EHMda yuqori darajali dasturlash tillaridan foydalanish uchun unda maxsus dastur – mashina tiliga o’tkazuvchi translyator bo’lishi shart. Dasturlash tili standartlari va translyator realizatsiyasidan aniq foydalanilgan holda bir dastur, masalan, Fortranda yozilgan dastur turli kompyuterlarda bir xil natija bilan qo’llanilishi mumkin. O’z navbatida dasturlar bir kompyuterdan boshqasiga qo’llanilayotgan arxitekturasi va mashina tilidan qat’iy nazar oson ko’chiriladi va modifikatsiyalanadi. Ko’pchilik holatlarda yuqori darajali dasturlash tillari katta hajmli mashina kodlarini hosil qiladi va ularning ishlashi sekinroq bo’ladi. Biroq ba’zi yuqori darajali dasturlash tillari algoritmik va tuzilishi jihatidan murakkab dasturlarda samaradorligi bo’yicha ustunlikka ega, quyi darajali dasturlash tillariga faqat sodda va kichik dasturlardagina “yutqazishi” mumkin. Hozirgi kunda quyi darajali dasturlash tillari faqat tizimli dasturlash masalalarini hal qilishdagina qo’llanilmoqda. “Quyi darajali dasturlash tillari” atamasi ko’pchlik tomonidan “tizimli dasturlash masalalarini hal qilish imkoniyatini berish” kabi tushuniladi. Aslida dastur matni mashina kodiga o’tkazish talab qilinadigan bir nechta dasturlash tillari ham bu tavsifga javob bera oladi. Bundan tashqari xatoliklarga bardoshliligi yuqori bo’lgan C# va Limbo tillari operatsion tizimlarda tizimli dasturlash rolida qo’llanadi. Shuni qayd etish mumkinki, dasturlash tillari “darajasi”ning oshishi ularning inson uchun qulaylik darajasi oshishiga, dasturlardagi xatoliklar sonining kamayishi va murakkabroq dasturiy tizimlarni qo’llay olishiga mos keladi. Murakkablik muammolarini muvaffaqiyatli hal qilish imkonini beruvchi dasturlashga ob’yektga yo’naltirilgan yondashuv, uning tarafdorlari fikricha “3,5 avlod” tillariga tegishli. Keyingi (to’rtinchi va keyingi) avlod dasturlash tillariga turli tadqiqotchilar turli dasturlash tillarini kiritishadi. Download 240.03 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling