Domanda

Lingue piace per esempio Rubino (se in esecuzione MRI, intendo non compilato di byte-code) esegue effettivamente analizzato ogni volta quando ad esempio è necessario un esecuzione, metodo o ciclo corpo? Voglio dire, per eseguire un ciclo, è necessario analizzare il corpo N volte?

Ho appena sempre pensato che tutti questi programmi vengono analizzati una volta al bootstrap, trasformata in un ‘fortemente tipizzato’ dichiarazioni albero, ecc è che non è vero?

È stato utile?

Soluzione

Sarò appena media ora e dire che quasi il linguaggio di programmazione OGNI viene interpretato, che si tratti di un software (Ruby, Python, Java) o hardware (C, C ++) interprete:)

Per una vera risposta, mentre io non so circa l'implementazione interna Ruby, sono sicuro come l'inferno che non analizzano la dichiarazione più e più e più volte. Anche se non utilizzando bytecode nella realizzazione originale (o hanno migrano già?), Che utilizzano una qualche rappresentazione intermedia (si può vedere bene quando si vuole scrivere C-estensioni per esso), quindi solo l'esecuzione di quelli più e più volte.

Altri suggerimenti

Interpretata è una parola con una definizione molto sciolto. istruzioni in codice macchina Anche vengono interpretati dal processore.

In generale, una distinzione viene fatta tra lingue che sono compilati prima di essere eseguiti e le lingue che non hanno un processo di compilazione e passano all'interno di un altro programma, chiamato l'interprete. Questi ultimi tipi di linguaggi sono spesso indicati come linguaggi interpretati .

La linea non è chiaro in alcuni casi:

  • Alcune lingue può essere compilato o interpretato, per esempio PHP.
  • Alcuni codice interpretato potrebbe essere compilato in fase di esecuzione in istruzioni macchina native ( compilazione JIT ).
  • Alcuni linguaggi compilati può avere una funzionalità exec che consente al codice di essere generato ed eseguito in fase di esecuzione, bypassando il normale processo di compilazione.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top