Llenguatge interpretat: diferència entre les revisions

Contingut suprimit Contingut afegit
m Bot: Traient 13 enllaços interwiki, ara proporcionats per Wikidata a d:q1993334
m Corregit: es -> és declarada
Línia 4:
 
==Rerefons històric==
Als inicis de la informàtica, el disseny d'un llenguatge estava molt influenciat per la decisió d'utilitzar-lo en mode d'execució interpretat o bé compilat. Per exemple, alguns llenguatges compilats requereixen que els programes especifiquin el tipus de la [[Variable en programació|variable]] quan esés declarada per primer cop. Per altra banda, alguns llenguatges aprofiten els avantatges del dinamisme de la interpretació per fer aquestes declaracions innecessàries. Per exemple, l'[[Smalltalk]] (que va ser dissenyat per ser interpretat en temps d'execució) permet Objectes genèrics que poden interactuar dinàmicament entre ells.
 
Inicialment, els llenguatges interpretats eren compilats línia a línia; això vol dir que, cada línia era compilada quan era executada, i si el bucle o la subrutina causava que certes línies s'executessin diversos cops, aquestes eren recompilades cada cop. Això ha esdevingut poc habitual. La majoria dels llenguatges interpretats utilitzen un codi intermig com a representació, el qual combina la compilació amb la interpretació. En aquest cas, un compilador ha de generar alguna forma de codi binari, el qual és després executat per l'intèrpret de codi binari. Alguns exemples d'això són el Python, el Java i el [[Perl]]. De manera semblant, el [[Ruby]] fa servir una sintexi d'abstracció en arbre com a representació intermitja. La representació intermitja pot ser compilada un cop i aprofitada per tots, com el Java; compilada cada cop abans d'executar-se, com el Perl o el Ruby; o cada cop que es detecta que ha canviat el codi abans d'executar-se com el Python.