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: