I bob c++ dasturlash tili kompilyatorlari va ularning xususiyatlari c++ builder 6 kompilyator haqida dev c++ kompilyator haqida ma’lumot codeblocks kompilyator imkoniyatlari bob
DEV C++ KOMPILYATOR HAQIDA MA’LUMOT
Download 0.5 Mb.
|
C DASTURLASH TILI KOMPILYATORLARI VA ULARNING XUSUSIYATLARI
DEV C++ KOMPILYATOR HAQIDA MA’LUMOT
Dasturlardan foydalanib, biror ish bajarish va shu orqali natija olish, unchalik qiyin jarayon emas. Bir marotaba ko‘rib olgan inson, keyingi safar o‘zi bajara oladi. Ko‘pchilik adashtiradigan narsa, bu foydalanuvchi dasturchi deyilmaydi, faqatgina dastur foydalanuvchisi bo‘ladi xolos. Dasturchi, foydalanuvchilar foydalanishi uchun dastur yaratadi va bu jarayon juda murakkab hisoblanadi. Dasturchilik bilan shug‘ullanishni endi boshlagan yoshlar ko‘p qiyinchiliklarga duch kelishadi. Bu qiyinchiliklar asosan terminlarning tushunmasligidan kelib chiqadi. Bu maqolamda dasturlashning eng kerakli termini hisoblangan interpretator vakompilyator haqida yozib o‘taman. Dasturlash jarayonida dasturchi o‘z dasturini yaratish uchun xar hil turdagi kodlar yozadi. Kodlarnining qanday bo‘lishi qaysi dasturlash tilidan foydalanib, dastur tuzishga bog‘liq bo‘ladi. Dasturlash tillaridan C, C++, Java,… .Yozilgan kodlarni kompyuter tushunmaydi, kompyuter tushunishi uchun uchun bu kodlarni kompyuter tushunadigan tilga o‘zgartirish lozim. Mana shu vaziyatda yuqoridagi 2 ta termin kerak bo‘ladi(kompilyator yoki interpretator). Kompyuter faqatgina raqamli kodlarni tushunadi, ya’ni 0 yoki 1. Bu 2 son orqali dastur tuzish juda qiyin hisoblanadi(manimcha bunday sonlar orqali dastur tuzuvchilar sanoqli bo‘lsa kerak). Shuning uchun, insonlar tushunadigan qilib dasturlash tillari yaratilgan. Ketma-ketlikni tushungandursiz, dasturchi dasturlash tillari orqali kodlar yozadi va bu kodlar kompyuter tushunadigan 0 va 1 sonlariga almashtiriladi va dastur kompyuterda ishlaydi, bu jarayonni kompilyator yoki interpretator amalga oshirib beradi. Kompilyator — murakkab dasturdir, dasturlash tilida yozilgan barcha kodlarni birdanigaob’yektli kodga o‘zgartirib beradi. Ob’yektli kodni yana ikkilik kod yoki mashina kodideb ham atashadi. Keyinchalik bu ob’yektli kod kompyuterda to‘g‘ridan to‘g‘ri ishlatilishi mumkin bo‘ladi. Dasturlash tillarida yozilgan kodlar bu ob’yektli kodga ta’sir qilmaydi. Ob’yektli kodni o‘zgartirish uchun esa, qaytadan kompilyatsiya qilinib ob’yektli kod o‘zgartiriladi. Natija bajariladigan, .exe ko‘rinishidagi fayl bo‘ladi. Bu faylni bloknotda ochib o‘zgartirib bo‘lmaydi, ya’ni bu fayl tayyor dastur hisoblanadi. Kompilyatorning kamchiligi sifatida, dasturlash tilidagi ma’lum bir qatorlani alohida tekshirish imkoniyati yo‘qligidir, uning uchun ob’yektli kod yaratib, uni ishga tushurish lozim bo‘ladi, ortiqcha ish bo‘lib qoladi. Undan tashqari ba’zi kompilyatorlar bir dasturlash tilidan, ikkinchisiga ham o‘zgartirib berishi mumkin. Kompilyator ishlatadigan dasturlash tillariga C, C++, Delphi larni misol qilib keltirish mumkin. Interpretator — ham dastur ham jihoz ko‘rinishida bo‘lishi mumkin. Bu ham kompyuter tiliga o‘zgartirib berish vazifasini bajaradi, faqatgina ishlash texnologiyasi boshqacharoqdir. Interpretator, dasturlash tilida yozilgan kodlarni ketma — ket o‘qib, mashina tiliga o‘zgartirib boradi. Xatolik paydo bo‘lsa, o‘sha zahoti dasturchiga ma’lum qiladi. Bu ketma — ketlikda o‘zgartirish, kompilyatorga nisbatan sekinroq amalga oshiriladi(ba’zi holllarda kompilyatorga qaraganda 50 barobar sekin). Dastur natijasini ko‘rish uchun, har safar kodlarni interpretatordan o‘tkazish kerak bo‘ladi(kompilyatorga o‘xshab bir marotaba ob’yekt kod yaratib qo‘yib, keyin har doim ishlatishning iloji yo‘q). Bundan ko‘rinib turibdiki, interpretator asosan saytlar, umumiy holda veb dasturlashda ishlatiladi. Biror saytning yuklanishi jarayni uzunligi, interpretatorda o‘zgartirish amalga oshirilishi bilan tushuntirilishi mumkin. Interpretator ishlatadigan dasturlash tillariga PHP, JavaScript, JScript, Basic,… misol bo‘la oladi. Bu ikki termin umumiy holda translyator deyiladi, ya’ni o‘zgartirgichlardir. Biror proyektlar qilganda bu 2 o‘zgartirgichlar birgalikda ham ishlatilishi mumkin. Biror dasturlash tili bilan jiddiy shug‘ullanmoqchi bo‘lsangiz, dastlab siz yozadigan kodlar qay tarzda kompyuter tiliga o‘zgartirilishini o‘rganib oling. Bu dasturlashning asosi hisoblanadi. Dasturlash tillari bilan shug‘ullanadigan dasturchilar ba’zi bir terminlar bilan juda ko‘p to‘qnash kelishadi. C++ dasturlash tili ham bundan mustasno emas. Oldin shu haqida, undan so‘ng esa C++ ni ishlatish uchun nimalar kerakligini ko‘rib chiqamiz. Demak terminlarni ko‘rib chiqamiz: Kompilyator – bu o‘zgartirish degan ma’noni beradi. Ya’ni dasturlash tilida yozilgan dastur(C++ bo‘lsa, *.c, *.cpp)ni kompyuter tushunadigan tilga o‘zgartirib, uni ishlashini ta’minlaydi. Bu degani dastur kompyuterda to‘liq ishlaydi. Bundan ko‘rinib turibdiki, C++ da dastur tuzish uchun kompilyator o‘rnatish zarur. Linux operatsion tizimida kompilyator o‘rnatilgan bo‘ladi(GCC, G++). Kompilyatsiya – o‘zgaruvchi jarayon, ya’ni yuqori pog‘onali dastur kodlari(misol uchun C++ da tuzilgan kod)ni quyi pog‘onali ishlovchi kodga aylantirish jarayoni. Komponovshik(linker) – ishlovchi modul yaratish. Proyektda ishlatiladigan ob’yekt fayllarni to‘plab yagona ishlovchi modulga aytiladi. IDE(integrallashgan ishlovchi muhit) – Har bir dasturlash tilida o‘z ishchi muhiti bo‘ladi. Bu muhitda kompilyator bilan birga kod yozishga mo‘ljallangan joy bo‘ladi. Bu ishchi muhitda bir necha dastur kodlarini ham yozsa bo‘ladi va bu muhit avtomat xatolarni ham ko‘rsatib beradi. Bu ishchi muhitda ma’lum kutubxonalar joylashgan bo‘lib, kod yozishda kodni to‘g‘ri tashkil qilish uchun ma’lum bir yordamlar ekranga chiqadi. Ishchi muhitga oddiy bloknot misol bo‘ladi, lekin bu muhitning kompilyatori yo‘q, shuning uchun alohida kompilyator o‘rnatiladi. Bunda 2 ta dastur o‘rnatib bir biriga moslashtirish kerak bo‘ladi. Bu 2 ishni yengillashtirish uchun, juda ko‘p ishchi muhit dasturlari yaratilgan va ular kompilyatorlar bilan integrallashgan bo‘ladi. C++ dasturlash muhitida eng keng tarqalgan IDE bu – Visual C++ hisoblanadi. Bu dastur o‘z ichiga dastur kodlarini yozishda juda muhim bo‘lgan .NET klasslari, ishchi muhit va albatta kompilyator integrallashtirilgan bo‘ladi. Quyida hozirgi zamonda eng ommabop bo‘lgan C++ muhitlari va kompilyatorlari ro‘yxatini keltirib o‘taman. Dev-C++ — C/C++ dasturlash tillari uchun ochiq integrallashgan dasturlash muhiti. Bu distributivga MinGWnomli kompilyator kiradi. Bu dastur o‘zi Delphi dasturlash tilida tuzilgan. GPL litsenziyasi orqali tarqatiladi. Bir paytlar Linux versiyasi ham mavjud edi, hozir faqat Windows. Hozir yangi versiyalari ishlab chiqilmayapti, uning o‘rniga wxDev-C++ nomi bilan ishlab chiqilmoqda. C++ Builder – C++ dasturlash tili uchun mo‘ljallangan integrallashgan dasturlash muhiti hisoblanadi. DastlabBorland Software korxonasi tomonidan ishlab chiqilgan, undan so‘ng uning bir qismi bo‘lgan CodeGeartomonidan. C++ Builder STL, VCL, CLX, MFC ob’yekt kutubxonalarini o‘z ichiga oladi. Delphi dasturlash tili tomonidan ishlab chiqilgan. Bu muhit drag-and-drop harakati bilan vizual shaklni paydo qilishi mumkin, undan tashqari WYSIWYG redaktori ham mavjud. Borland C++ — C/C++ dasturlash tillarida dastur tuzish uchun mo‘ljallangan muhit bo‘lib, Borland firmasi tomonidan ishlab chiqilgan. Muhitning har bir versiyasi ma’lum bir dasturlash tili standarti asosida ishlovchi kompilyator bilan integrallashgan holda chiqarilgan. Dastlab, DOS operatsion tizimi muhitida ishlovchi dasturlarni yaratish uchun, keyinchalik Windows muhitida ishlovchi dasturlarni yaratish uchun mo‘ljallangan versiyada ishlab chiqildi. Microsoft Visual C++ — Albatta Microsoft firmasi ham bekor turmadi. Mana shu muhitni yaratdi. C++ dasturlash tili uchun mo‘ljallangan va Microsoft Visual Studio ni bir qismi sifatida yoki o‘zi yakka Visual C++ Express Edition shaklida namoyon bo‘ldi. Microsoft QuickC muhitini almashtirish vazifasini bajardi. GNU Compiler Collection(GCC) – GNU proyekti asosida yaratilgan, xar hil turdagi dasturlash tillarining kompilyatorlar yig‘indisi hisoblanadi. Bu dastur ochiq hisoblanadi va dastlab faqat S uchun yaratilgan edi. Keyinchalik kuchayib C++, Objective-C, Java, Fortran va Ada dasturlash tillari uchun ham ishlab chiqildi. Hammamizga ma’lumki kompyuter yoki har qanday dastur bilan ishlovchi qurilmalar uchun dasturlar biror bir dasturlash tillarida yoziladi. Bunday tillar hozirda juda ko’p. C, C , Delphi, Ruby, Perl, Python, Java va shu kabi universal dasturlash tillaridan tashqari maxsus biror yo’nalish yoki platformaga mo’ljallangan tillar, skript tillar ham bir talay. Dastur tuzish uchun dastur tuzilayotgan qurilma ichki tuzilmasini hisobga olib yuqoridagi tillardan birida dastur matni yoziladi. So’ngra bu dastur ishlashi uchun dastur matnini u mo’ljallangan qurilmaning “tiliga”, ya’ni prosessor instruksiyalari (buyruqlari) ketma-ketligiga tarjima qilish kerak bo’ladi. Bu vazifani kompilyator dasturi bajaradi. Kompilyator – biror dasturlash tilida yozilgan dastur (matni)ni o’sha til qoidalariga muvofiq mashina kodiga yoki oraliq kodga (p-kod, baytkod) tarjima qiluvchi dastur. Ushbu tarjima jarayoni kompilyasiya deyiladi. Agar kompilyasiya jarayonida dastur mashina kodiga tarjima qilingan bo’lsa, hosil bo’lgan kod o’sha qurilma/muhitda bevosita ishlayveradi. Agar dastur oraliq kodga tarjima qilingan bo’lsa, u holda bu kodni ishlatish uchun Virtual Mashina kerak bo’ladi. Virtual mashina – oraliq kodda ifodalangan dasturni qadamlab mashina kodiga tarjima qiladi va dasturni ishlatadi. Shu joyda “Oraliq kodga o’tkazishni nima keragi bor, dasturni to’g’ridan to’g’ri mashina kodiga o’girish yaxshimasmi?” degan savol tug’ilishi tabiiy. Oraliq kod birinchi navbatda dasturning kross platformaliligini (dastur o’zgarishsiz yoki qisman o’zgartirish orqali boshqa platformalarda ham ishlayverishga yaroqli bo’lsa bunday dastur kross platformali deyiladi) ta’minlaydi. Har bir platforma, OS o’zining ichki arxitekturasi jihatidan bir biridan farq qiladi, shunday ekan bir muhitga moslab yozilgan mashina tilidagi kod ikkinchi boshqa bir muhitda ishlamasligi tabiiy. Oraliq kodlarda yozilgan dasturlar huddi shu muammoni hal qilishda yordam beradi. Bunda oraliq kodni ishlatish uchun kerak bo’ladigan Virtual Mashina turli muhitlar, OS lar uchun mavjud bo’lsa yetarli, ya’ni har bir dasturni boshqa muhitga moslash shart emas, faqatgina Virtual Mashinani kerakli muhitlar uchun moslansa yetarli. Bundan tashqari oraliq kod dasturni tahlil qilish (debug) jarayonini yengillashtiradi ham. Oraliq kod hosil qiluvchi til kompilyatorlariga misol qilib, Java, Python, Ruby kabilarni keltirish mumkin. Xo’sh kompilyator qanday ishlaydi? Har qanday tillar o’zining grammatikasi yoki sintaksisiga ega bo’ladi. Masalan, o’zbek tilida to’g’ri yozilgan gapda kesim egadan keyin kelishi kabi qoida ham til sintaksisining bir bo’lagidir. Dasturlash tillarida ham tabiiy tillar singari o’zining qonun qoidalari bo’lishi tabiiy. Kompilyasiya jarayoni huddi shu qoidalarga asoslangan holda amalga oshiriladi. Erkin kontekstli dasturlash tillari uchun kompilyatorlar odatda asosan 3 bosqichdan iborat bo’ladi: • Leksik tahlil • Sintatktik tahlil • Tarjima qilish Har bir bosqichni batafsil ko’rib chiqamiz. Download 0.5 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling