Intèrpret (TI)

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca

Un intèrpret , en informàtica i programació , és un programa capaç d’ executar altres programes a partir directament del codi font relatiu escrit en un llenguatge d’alt nivell , sense haver -lo compilat prèviament ( codi objecte ), és a dir, executant les instruccions en el llenguatge utilitzat. traduint-los de tant en tant a les instruccions del llenguatge de la màquina del processador .

Descripció

A diferència d'un intèrpret, un compilador no executa el programa que rep com a entrada, sinó que el tradueix al llenguatge de la màquina (emmagatzemant el codi objecte en un fitxer llest per a l'execució directa pel processador ). Per a qualsevol llenguatge de programació , es pot escriure tant un intèrpret com un compilador, per tant, el llenguatge interpretat i el llenguatge compilat , encara que freqüents, són impropis, ja que són conceptes d’interpretació i compilació pertanyents a la implementació d’un llenguatge i no al llenguatge mateix.

Motor de seqüències

El "motor de scripting" és un motor que interpreta llistes d'ordres, anomenats scripts , formulats amb una sintaxi específica, anomenada llenguatge de scripting . Normalment trobem un motor de seqüència d’ordres on hem de proporcionar una gran flexibilitat per a aspectes específics, sense requeriments de velocitat excessius. La simplicitat i la immediatesa són, per tant, requisits fonamentals. Això situa els motors de scripting a un alt nivell d’abstracció .

pros i contres

L’enfocament interpretat implica una eficiència menor en temps d’execució ; un programa interpretat, en execució, requereix més memòria i és més lent, a causa de la sobrecàrrega introduïda pel propi intèrpret. Durant l'execució, l'intèrpret de fet ha d'analitzar les instruccions a partir del nivell sintàctic , identificar les accions a realitzar (possiblement transformant els noms simbòlics de les variables implicades en les adreces de memòria corresponents) i executar-les; mentre que les instruccions del codi compilat, ja en llenguatge de màquina, són carregades i executades instantàniament pel processador .

D'altra banda, la interpretació d'un programa pot ser més ràpida que el cicle de compilació / execució. Aquesta diferència pot ser un avantatge durant el desenvolupament, especialment si es fa amb tècniques de prototipatge ràpid o durant la depuració . A més, la majoria d’intèrprets permeten a l’usuari actuar sobre el programa en execució suspenent-lo, inspeccionant o modificant el contingut de les seves variables, etc., d’una manera que sovint és més flexible i potent que el que es pot aconseguir per al codi compilat. un depurador .

Enfocaments híbrids

En canvi, hi ha nombrosos enfocaments híbrids entre llenguatges totalment interpretats i completament compilats. Algunes versions de Lisp permeten ambdós enfocaments, i fins i tot permeten l'execució de programes parcialment interpretats i parcialment compilats, de manera que, per exemple, es pot provar un nou subprograma en forma interpretada i, un cop finalitzada la depuració , es pot compilar per millorar el seu rendiment. rendiment.

Molts agents d'usuari no executen directament el codi font, sinó que el converteixen per endavant a una forma interna més compacta, per exemple en un arbre d'anàlisi abstracte . Encara és diferent l’enfocament d’ Emacs Lisp i Java , en què s’utilitza un compilador que transforma el codi font en un format intermedi anomenat (per als dos idiomes) bytecode , força proper al llenguatge de màquina (i, per tant, amb un cost d’interpretació moderat), però executat per un intèrpret i no directament pel processador (i, per tant, portàtil ).

Una tècnica que ha despertat un interès considerable en els darrers anys (i que s’aplica a la majoria de les implementacions actuals de Java i als llenguatges de la família Microsoft .NET ) s’anomena "just in time" o compilació JIT. Aquesta tècnica es pot considerar com una optimització de la interpretació, en què l'intèrpret compila durant l'execució els fragments de codi que s'executen amb més freqüència, per reduir el cost de les seves posteriors execucions.

Articles relacionats

Enllaços externs

Control de l'autoritat LCCN (EN) sh85067496 · GND (DE) 4162129-3 · BNF (FR) cb11938287v (data)
Informàtica Portal de TI : accediu a les entrades de Viquipèdia relacionades amb TI