Tolkar är program som kör andra program direkt, rad för rad, utan att först sammanställa källkoden till maskinkod. Deras primära funktion är att översätta och utföra källkodinstruktioner en åt gången. Detta skiljer sig från kompilatorer, som översätter hela källkoden till maskinkod före körning.
Här är en uppdelning av nyckelfunktionerna som tolkar utför:
* Läsning och analys: Tolkaren läser källkoden (t.ex. Python, JavaScript, Ruby) och analyserar den. Parsing innebär att analysera kodens struktur för att kontrollera om syntaxfel och förstå förhållandena mellan olika delar av programmet.
* lexikal analys: Detta är en underuppgift av analys. Tolkaren delar källkoden i tokens (individuella meningsfulla enheter som nyckelord, identifierare, operatörer).
* Semantisk analys: Efter analys undersöker tolken betydelsen av koden. Den kontrollerar för semantiska fel, som är fel i logiken eller betydelsen av koden (även om syntaxen är korrekt).
* Översättning och exekvering: Tolkaren översätter varje instruktion eller ett litet instruktionsblock till maskinkod (eller en lägre nivå mellanliggande representation) * och kör omedelbart * den. Det finns inget separat sammanställningssteg.
* Minneshantering: Tolkar hanterar ofta minnesallokering och uppdelning av variabler och datastrukturer under exekveringen.
* Felhantering: Tolkar upptäcker och rapporterar runtime -fel, vanligtvis ger användbara felmeddelanden för att underlätta felsökning.
* Interaktion med operativsystemet: Tolkar interagerar ofta med operativsystemet för att hantera input/utgångsoperationer, åtkomst till filer och hantera resurser.
Nyckelskillnader från kompilatorer (påverkar tolkfunktioner):
* exekveringshastighet: Tolkar är i allmänhet långsammare än kompilatorer eftersom de kör kodlinje för rad, utan den optimering som sammanställningen ger.
* felsökning: Tolkar underlättar ofta felsökning eftersom de kan stoppa körningen när som helst och visa variablernas tillstånd och den nuvarande exekveringslinjen. Detta görs ofta interaktivt.
* Portabilitet: Tolkar kan potentiellt vara mer bärbara eftersom de inte behöver generera maskinkod som är specifika för en viss processorarkitektur. Tolkaren själv måste vara kompatibel med målsystemet, men källkoden behöver inte kompilation för varje plattform.
* Minnesanvändning: Tolkar använder vanligtvis mer minne under körtid än sammanställda program eftersom de måste behålla tolken själv, källkoden och runtime -miljön.
Sammanfattningsvis är en tolks primära jobb att fungera som en översättare och exekveringsmotor, direkt tolkar och kör källkodinstruktioner, en efter en, som ger en dynamisk och interaktiv programmeringsupplevelse, ofta till kostnad för hastighet och effektivitet jämfört med sammanställda program.