Debugger vs Compiler
Ümumiyyətlə kompilyator mənbə dil adlanan bir dildə yazılmış proqramı oxuyan və onu hədəf dil adlanan başqa dilə çevirən kompüter proqramıdır. Ənənəvi olaraq mənbə dili C++ kimi yüksək səviyyəli dil, hədəf dil isə assembly dili kimi aşağı səviyyəli dil idi. Debugger, digər proqramlardakı səhvləri/səhvləri tapmaq üçün istifadə olunan kompüter proqramıdır. Debugger proqramçıya bir nöqtədə proqramın icrasını dayandırmağa və həmin nöqtədə dəyişən dəyərlər kimi xüsusiyyətləri yoxlamağa imkan verir.
Debugger nədir?
Debugger digər proqramlardakı səhvləri/səhvləri tapmaq üçün istifadə edilən kompüter proqramıdır. Debugger proqramı icra etməyə və proqramın icrasında hər bir addımı yoxlamağa imkan verir. O, həmçinin proqramın icrasını müəyyən nöqtədə dayandırmağa və bəzi dəyişən dəyərləri dəyişdirməyə və sonra icranı davam etdirməyə imkan verir. Bütün bu imkanlar proqramçıya öz proqramının düzgün davrandığından əmin olmaq və koddakı səhvləri aşkarlamağa kömək etmək üçün verilir. Sazlayıcıların əksəriyyəti proqramı addım-addım icra etmək imkanı verir (həmçinin tək addım adlanır), fasilə nöqtəsi təmin etməklə və dəyişən dəyərləri izləməklə proqramın cari vəziyyətini yoxlamaq üçün fasilə verir. Bəzi inkişaf etmiş sazlayıcılar proqramçıya kodda qəzaya və ya məntiqi xətaya səbəb olan yeri atlamağa və icranı başqa yerdən davam etdirməyə imkan verir. Məşhur sazlayıcılardan bəziləri GNU Debugger (GDB), Microsoft Visual Studio Debugger və s.-dir.
Tərtibçi nədir?
Tərtibçi mənbə dil adlanan bir dildə yazılmış proqramı oxuyan və onu hədəf dil adlanan başqa bir dilə çevirən kompüter proqramıdır. Çox vaxt mənbə dil yüksək səviyyəli dil, hədəf dil isə aşağı səviyyəli dildir. Beləliklə, ümumiyyətlə tərtibçiləri bir dildən digərinə tərcümə edən tərcüməçilər kimi görmək olar. Bundan əlavə, kompilyatorlar koda bəzi optimallaşdırmalar həyata keçirirlər. Tipik kompilyator bir neçə əsas komponentdən ibarətdir. Birinci komponent skanerdir (həmçinin leksik analizator kimi də tanınır). Skaner proqramı oxuyur və onu bir sıra işarələrə çevirir. İkinci komponent təhliledicidir. O, proqramın sintaktik strukturunu tutan ayələr sətirini təhlil ağacına (və ya abstrakt sintaksis ağacına) çevirir. Növbəti komponent sintaktik strukturun semantikasını şərh edən semantik rutinlərdir. Bunun ardınca kodun optimallaşdırılması və son kodun yaradılması gəlir.
Debugger və Compiler arasındakı fərq nədir?
Debugger digər proqramlardakı səhvləri/səhvləri tapmaq üçün istifadə edilən kompüter proqramıdır, kompilyator isə bir dildə yazılmış proqramı oxuyan və başqa dilə tərcümə edən kompüter proqramıdır. Kompilyatorların sintaksis xətalarını və digər kompilyasiya vaxtı xətalarını aşkar etmək imkanı da var, lakin sazlayıcılar proqramlardakı səhvləri aşkar etmək üçün daha çox imkanlar (yaddaşın monitorinqi kimi) təmin edir. Bu ikisi iki fərqli proqramdır, lakin əksər hallarda sazlayıcı və tərtibçi bir paketə inteqrasiya olunur.