Tolk ( engelsk tolk ıntə:'prıtə [1] , af latin tolk - tolk [2] ) er et program (en slags oversætter ), der udfører tolkning [3] .
Fortolkning - linje-for-linje analyse, bearbejdning og eksekvering af kildekoden til et program eller anmodning, i modsætning til kompilering , hvor hele programmets tekst analyseres og oversættes til maskin- eller bytekode før kørsel [4] [5 ] [6] .
Det første fortolkede programmeringssprog på højt niveau var Lisp . Dens tolk blev skabt i 1958 af Steve Russell på en IBM 704-computer . Russell var inspireret af John McCarthys arbejde og fandt ud af, at en funktion evali Lisp kunne indbygges i maskinkode [7] .
En simpel fortolker analyserer og udfører straks (fortolkningen selv) programmet kommando-for-kommando eller linje-for-linje, efterhånden som dets kildekode ankommer til tolkens input. Fordelen ved denne tilgang er den øjeblikkelige respons. Ulempen er, at en sådan fortolker kun opdager fejl i programteksten, når den forsøger at udføre en kommando eller en linje med en fejl.
En kompileringstypefortolker er et system fra en compiler , der oversætter programmets kildekode til en mellemrepræsentation, for eksempel til bytekode eller p-kode , og fortolkeren selv, som udfører den resulterende mellemkode (den såkaldte virtuelle maskine ) . Fordelen ved sådanne systemer er den større hastighed af programudførelse på grund af fjernelse af kildekodeanalysen i et separat, engangspass, og minimeringen af denne analyse i fortolkeren. Ulemper - større ressourcebehov og kravet om kildekodens rigtighed. Det bruges i sprog som Java , PHP , Tcl , Perl , REXX (resultatet af parsing af kildekoden gemmes [8] ), såvel som i forskellige DBMS .
Hvis tolken af en kompileringstype er opdelt i komponenter, opnås en sprogkompiler og en simpel tolk med minimeret kildekodeanalyse. Desuden behøver kildekoden til en sådan fortolker ikke at være i et tekstformat eller være en bytekode, som kun denne fortolker forstår, det kan være maskinkoden for en eksisterende hardwareplatform. For eksempel inkluderer virtuelle maskiner som QEMU , Bochs , VMware maskinkodefortolkere til x86 - familieprocessorer .
Nogle tolke (for eksempel til Lisp , Scheme , Python , BASIC og andre) kan arbejde i dialogtilstand eller den såkaldte read-compute-print loop ( read-eval-print loop, REPL ) . I denne tilstand læser tolken en komplet sprogkonstruktion (for eksempel s-udtryk i Lisp), udfører den, udskriver resultaterne og fortsætter derefter med at vente på, at brugeren indtaster den næste konstruktion.
Forth -sproget er unikt , som er i stand til at arbejde både i fortolknings- og kompileringstilstande for inputdata, hvilket giver dig mulighed for at skifte mellem disse tilstande til enhver tid, både under kildekodeoversættelse og mens programmer kører. [9]
Det skal også bemærkes, at fortolkningstilstande ikke kun findes i software, men også i hardware . Så mange mikroprocessorer fortolker maskinkode ved hjælp af indbyggede mikroprogrammer og x86-familieprocessorer, startende med Pentium (for eksempel på Intel P6 -arkitekturen ), under udførelsen af maskinkode, præ-oversætter den til et internt format (til et rækkefølge af mikrooperationer).
Ordbøger og encyklopædier | |
---|---|
I bibliografiske kataloger |
|