Kompilyator nədir?
Kompilyator — proqramçının yazdığı yüksək səviyyəli proqramlaşdırma dilindəki kodu, kompüterin birbaşa başa düşdüyü maşın koduna (aşağı səviyyəli dilə) çevirən xüsusi proqramdır. Kompilyator olmadan, insan tərəfindən yazılmış kod (məsələn, Python və ya C++ dilində) kompüter prosessoru üçün mənasız olardı — çünki prosessor yalnız ikili (0 və 1) formatındakı təlimatları icra edə bilir.
Sadə desək: kompilyator, insan dilinə yaxın yazılmış kodu, kompüterin öz dilinə tərcümə edən tərcüməçidir.
Kompilyator necə işləyir?
Kompilyasiya prosesi adətən bir neçə mərhələdən keçir:
- Leksik analiz (Lexical Analysis): Kod, mənalı ən kiçik vahidlərə (token-lərə) bölünür — məsələn, açar sözlər, dəyişən adları, operatorlar.
- Sintaktik analiz (Syntax Analysis): Token-lərin dilin qrammatik qaydalarına uyğun düzülüb-düzülmədiyi yoxlanılır (bu, "parsing" adlanır).
- Semantik analiz (Semantic Analysis): Kodun məntiqi cəhətdən düzgünlüyü yoxlanılır (məsələn, dəyişənin düzgün tipdə istifadə olunub-olunmadığı).
- Kod optimallaşdırması (Optimization): Kompilyator kodu daha effektiv (sürətli və az yaddaş tələb edən) etmək üçün təkmilləşdirmələr aparır.
- Kod generasiyası (Code Generation): Nəhayət, optimallaşdırılmış kod maşın koduna (və ya ara səviyyəli koda) çevrilir.
Bu proseslərin sonunda, icra oluna bilən (executable) fayl yaranır — bu fayl artıq birbaşa kompüterdə işə salına bilər, hər dəfə yenidən "tərcüməyə" ehtiyac qalmır.
Kompilyator ilə İnterpretator arasında fərq
Bu iki termin proqramlaşdırmada tez-tez müqayisə edilir, çünki hər ikisi kodu icra oluna bilən formaya çevirir, amma fərqli üsullarla:
Kompilyatorİnterpretatorİşləmə üsuluBütün kodu bir dəfəyə maşın koduna çevirirKodu sətir-sətir oxuyub dərhal icra edirSürətIcra zamanı daha sürətlidir (əvvəlcədən tərcümə olunub)Adətən daha yavaşdır (hər dəfə tərcümə edilir)Xəta tapmaBütün kodu yoxlayır, xətaları kompilyasiya zamanı bir yerdə göstərirXətanı yalnız həmin sətrə çatanda aşkarlayırNümunə dillərC, C++, Go, RustPython, JavaScript (əsasən)ÇıxışAyrıca icra oluna bilən fayl (.exe və s.) yaranırAyrıca fayl yaranmır, interpretator hər dəfə lazımdır
Bəzi müasir dillər (məsələn, Java) hər ikisinin kombinasiyasından istifadə edir: əvvəlcə kod "bytecode" adlanan ara formaya kompilyasiya olunur, sonra bu bytecode virtual maşın (JVM) tərəfindən interpretasiya olunur.
Kompilyatorun üstünlükləri
- Yüksək performans: Kod əvvəlcədən tərcümə olunduğu üçün icra zamanı daha sürətli işləyir.
- Mənbə kodunun gizli qalması: İstifadəçiyə yalnız icra oluna bilən fayl paylaşılır, orijinal kod göstərilmir.
- Bir dəfə kompilyasiya, çoxlu icra: Kompilyasiya edildikdən sonra proqram dəfələrlə, yenidən tərcüməyə ehtiyac qalmadan işə salına bilər.
Kompilyatorun çatışmazlıqları
- Kompilyasiya vaxtı: Böyük layihələrdə kompilyasiya prosesi vaxt apara bilər.
- Platformaya bağlılıq: Bir platforma üçün kompilyasiya olunmuş proqram, adətən başqa platformada (məsələn, Windows-dan macOS-a) birbaşa işləmir — yenidən kompilyasiya tələb olunur.
Məşhur kompilyatorlara nümunələr
- GCC (GNU Compiler Collection): C və C++ dilləri üçün ən geniş yayılmış açıq mənbəli kompilyatorlardan biri.
- Clang: LLVM əsasında qurulmuş, sürətli və müasir bir kompilyator.
- javac: Java proqramlaşdırma dili üçün rəsmi kompilyator.
- rustc: Rust proqramlaşdırma dilinin kompilyatoru.
Kross-kompilyator
Bəzi kompilyatorlar bir platformada işləyərək, başqa bir platforma üçün icra oluna bilən kod yarada bilir — bunlara kross-kompilyator (cross-compiler) deyilir. Bu, xüsusilə mobil tətbiq və embedded sistemlərin inkişafında geniş istifadə olunur (məsələn, komputerdə yazılan kodun mikrokontroller üçün kompilyasiya edilməsi).
Nəticə
Kompilyator — proqramlaşdırma dünyasının görünməz, lakin əvəzsiz alətlərindən biridir. O olmadan, yazdığımız kod sadəcə mətn faylı olaraq qalardı, kompüter tərəfindən heç vaxt icra oluna bilməzdi. Kompilyatorun necə işlədiyini anlamaq, proqramçılara həm daha effektiv kod yazmağa, həm də performans problemlərini daha yaxşı başa düşməyə kömək edir.
İstəyirsiniz ki, bu biliyi praktikaya keçirib real nəticələr əldə edəsiniz? IT və Kompüter Mühəndisliyi kursumuzla addım-addım öyrənməyə başlayın. Ətraflı məlumat üçün linkə keçid edin: IT və Kompüter Mühəndisliyi kursu
Tez-tez verilən suallar
Kompilyator nədir? Kompilyator — proqramçının yazdığı yüksək səviyyəli kodu, kompüterin başa düşdüyü maşın koduna çevirən proqramdır. Bu proses sayəsində yazılan kod icra oluna bilən fayla çevrilir.
Kompilyator ilə interpretator arasında fərq nədir? Kompilyator bütün kodu bir dəfəyə maşın koduna çevirir və icra zamanı daha sürətlidir. İnterpretator isə kodu sətir-sətir oxuyub dərhal icra edir, adətən daha yavaşdır, amma xətaları daha tez aşkarlamağa kömək edir.
