shkencën kompjuterike, një interpreter është një program kompjuterikekzekuton drejtpërdrejt udhëzimet e shkruara në një gjuhë programimi ose skriptimi, pa kërkuar që më parë të jenë përpiluar në një program të gjuhës makine . Një përkthyes në përgjithësi përdor një nga strategjitë e mëposhtme për ekzekutimin e programit:

  1. Parson kodin burimor dhe kryen sjelljen e tij drejtpërdrejt;
  2. Përkthen kodin burimor në një përfaqësim efikas të ndërmjetëm ose kod objekti dhe ekzekuton menjëherë atë;
  3. Ekzekuton në mënyrë të qartë bajtkodin e parapërpiluar dhe të ruajtur [1] të bërë nga një përpilues dhe të përputhur me makinën virtuale të përkthyesit.
Modeli i dizajnit të interpretuesit të W3sDesign UML

Versionet e hershme të gjuhës programuese Lisp dhe dialektet BASIC të minikompjuterëve dhe mikrokompjuterëve do të ishin shembuj të llojit të parë. Perl, Raku, Python, MATLAB dhe Ruby janë shembuj të të dytit, ndërsa UCSD Pascal është një shembull i llojit të tretë. Programet burimore përpilohen përpara kohe dhe ruhen si kod i pavarur nga makineria, i cili më pas linket në kohën e ekzekutimit dhe ekzekutohet nga një përkthyes dhe/ose përpilues (për sistemet JIT ). Disa sisteme, të tilla si Smalltalk dhe versionet bashkëkohore të BASIC dhe Java, mund të kombinojnë gjithashtu dy dhe tre lloje. [2] Përkthyes të llojeve të ndryshme janë ndërtuar gjithashtu për shumë gjuhë të lidhura tradicionalisht me përpilimin, si Algol, Fortran, Cobol, C dhe C++ .

Ndërsa interpretimi dhe përpilimi janë dy mjetet kryesore me të cilat zbatohen gjuhët e programimit, ato nuk janë ndërsjellazi përjashtimore, pasi shumica e sistemeve interpretuese kryejnë gjithashtu disa punë përkthimi, njësoj si përpiluesit. Termat " gjuhë e interpretuar " ose " gjuhë e përpiluar " nënkuptojnë se zbatimi aty-për-aty i asaj gjuhe është përkatësisht një interpretues ose një përpilues. Një gjuhë e nivelit të lartë është në mënyrë ideale një abstraksion i pavarur nga zbatime të veçanta.

  1. ^ In this sense, the CPU is also an interpreter, of machine instructions.
  2. ^ Although this scheme (combining strategy 2 and 3) was used to implement certain BASIC interpreters already in the 1970s, such as the efficient BASIC interpreter of the ABC 80, for instance.