Debugger vs Compiler
Uopšteno govoreći, kompajler je kompjuterski program koji čita program napisan na jednom jeziku, koji se zove izvorni jezik, i prevodi ga na drugi jezik, koji se naziva ciljni jezik. Tradicionalno, izvorni jezik je bio jezik visokog nivoa kao što je C++, a ciljni jezik jezik niskog nivoa kao što je asemblerski jezik. Debugger je kompjuterski program koji se koristi za pronalaženje grešaka/grešaka u drugim programima. Debugger omogućava programeru da zaustavi izvršavanje programa u određenom trenutku i ispita karakteristike kao što su vrijednosti varijabli u toj tački.
Šta je debugger?
Debugger je kompjuterski program koji se koristi za pronalaženje grešaka/grešaka u drugim programima. Debugger omogućava izvršavanje programa i inspekciju svakog koraka u izvršavanju programa. Takođe omogućava zaustavljanje izvršavanja programa u nekom trenutku i promjenu nekih vrijednosti varijabli, a zatim nastavak izvršavanja. Sve ove mogućnosti su obezbijeđene kako bi pomogle programeru da se uvjeri da se njen program ponaša ispravno i da pomogne u identifikaciji grešaka u kodu. Većina programa za otklanjanje grešaka pruža mogućnost izvršavanja programa korak po korak (koji se naziva i pojedinačni korak), pauzirajući da bi se ispitalo trenutno stanje programa pružanjem tačke prekida i praćenjem vrednosti varijabli. Neki napredni debageri dozvoljavaju programeru da preskoči lokaciju koja uzrokuje pad ili logičku grešku u kodu i nastavi izvršavanje sa druge lokacije. Neki od popularnih debuggera su GNU Debugger (GDB), Microsoft Visual Studio Debugger, itd.
Šta je kompajler?
Kompajler je kompjuterski program koji čita program napisan na jednom jeziku, koji se zove izvorni jezik, i prevodi ga na drugi jezik, koji se naziva ciljni jezik. Najčešće je izvorni jezik jezik visokog nivoa, a ciljni jezik niskog nivoa. Dakle, generalno se prevodioci mogu posmatrati kao prevodioci koji prevode sa jednog jezika na drugi. Osim toga, prevodioci izvode neke optimizacije koda. Tipičan kompajler se sastoji od nekoliko glavnih komponenti. Prva komponenta je skener (također poznat kao leksički analizator). Skener čita program i pretvara ga u niz tokena. Druga komponenta je parser. Konvertuje niz tokena u stablo raščlanjivanja (ili apstraktno stablo sintakse), koje hvata sintaksičku strukturu programa. Sljedeća komponenta su semantičke rutine koje tumače semantiku sintaksičke strukture. Nakon toga slijede optimizacije koda i finalno generiranje koda.
Koja je razlika između debuggera i kompajlera?
Debugger je kompjuterski program koji se koristi za pronalaženje grešaka/grešaka u drugim programima, dok je kompajler kompjuterski program koji čita program napisan na jednom jeziku i prevodi ga na drugi jezik. Kompajleri takođe imaju sposobnost da detektuju sintaksičke greške i druge greške u vremenu kompajliranja, ali debageri pružaju više mogućnosti (kao što je nadgledanje memorije) za otkrivanje grešaka u programima. Ova dva su dva različita programa, ali najčešće su debuger i kompajler integrisani u jedan paket.