Debugger vs Compiler
I allmänhet är kompilatorn ett datorprogram som läser ett program skrivet på ett språk, som kallas källspråket, och översätter det till ett annat språk, som kallas målspråket. Traditionellt var källspråk ett högnivåspråk som C++ och målspråk var ett lågnivåspråk såsom assemblerspråk. Debugger är ett datorprogram som används för att hitta buggar/fel i andra program. Debugger tillåter en programmerare att stoppa exekvering av ett program vid en punkt och undersöka egenskaperna såsom variabelvärden vid den punkten.
Vad är en Debugger?
Debugger är ett datorprogram som används för att hitta buggar/fel i andra program. Debugger gör det möjligt att köra ett program och inspektera varje steg i programkörningen. Det tillåter också att stoppa körningen av programmet någon gång och ändra vissa variabelvärden och sedan fortsätta körningen. Alla dessa funktioner tillhandahålls för att hjälpa programmeraren att se till att hennes program fungerar korrekt och för att hjälpa till att identifiera buggar i koden. De flesta av debuggers ger möjlighet att exekvera ett program steg för steg (även kallat single stepping), pausar för att undersöka programmets aktuella tillstånd genom att tillhandahålla en brytpunkt och spåra variabelvärden. Vissa avancerade debuggers tillåter programmeraren att hoppa över en plats som orsakar en krasch eller ett logiskt fel i koden och fortsätta körningen från en annan plats. Några av de populära felsökarna är GNU Debugger (GDB), Microsoft Visual Studio Debugger, etc.
Vad är en kompilator?
Compiler är ett datorprogram som läser ett program skrivet på ett språk, som kallas källspråk, och översätter det till ett annat språk, som kallas målspråk. Oftast är källspråket ett högnivåspråk och målspråket är ett lågnivåspråk. Så i allmänhet kan kompilatorer ses som översättare som översätter från ett språk till ett annat. Dessutom utför kompilatorer vissa optimeringar av koden. En typisk kompilator består av flera huvudkomponenter. Den första komponenten är skannern (även känd som lexikalanalysatorn). Scanner läser programmet och konverterar det till en rad tokens. Den andra komponenten är parsern. Den konverterar strängen av tokens till ett analysträd (eller ett abstrakt syntaxträd), som fångar programmets syntaktiska struktur. Nästa komponent är de semantiska rutinerna som tolkar semantiken i den syntaktiska strukturen. Detta följs av kodoptimeringar och slutlig kodgenerering.
Vad är skillnaden mellan en debugger och en kompilator?
Debugger är ett datorprogram som används för att hitta buggar/fel i andra program, medan kompilatorn är ett datorprogram som läser ett program skrivet på ett språk och översätter det till ett annat språk. Kompilatorer har också förmågan att upptäcka syntaxfel och andra kompileringstidsfel, men debuggers ger fler möjligheter (som att övervaka minnet) för att upptäcka buggar i program. Dessa två är två olika program, men oftast är en debugger och en kompilator integrerade i ett enda paket.