Come vengono compilati i linguaggi di scripting?

6

So che il termine "linguaggi di scripting" è solo un sottogruppo di linguaggi di programmazione, ma desidero fare riferimento a linguaggi di programmazione come Python e Ruby, tra gli altri.

  1. Prima di tutto, perché non abbiamo bisogno di un compilatore per queste lingue? Ad esempio, IDE come Visual Studio o Eclipse hanno il proprio compilatore per tradurre il codice ed eseguire il programma. Cosa significa interpretare un linguaggio di programmazione e come vengono compilati (Python, Ruby) prima dell'esecuzione nel terminale senza un compilatore?

  2. Inoltre, quando installiamo Python o Ruby nei nostri computer prima di iniziare la codifica, cosa stiamo installando? pacchi? File? qualcosa che consente al nostro computer di capire la lingua?

posta chris 15.10.2015 - 21:15
fonte

2 risposte

15

What does it mean for a programming language to be interpreted and how are they compiled before execution in the terminal?

I compilatori e gli interpreti sono cose molto simili, fino all'ultimo passo. Per un compilatore, l'ultimo passo è quello di generare codice nella lingua di output e salvarlo . Per un interprete, non sta cercando di salvare il tuo codice; sta provando a eseguirlo immediatamente . Lo fa suddividendo il programma in comandi semantici di base, proprio come fa il compilatore, e poi eseguendo quei comandi tramite un runtime che li implementa nel software.

2) Also, when we install Python or Ruby in our computers before start coding, what are we actually installing? packages? files? something that lets our computer understand the language?

In generale, stai installando l'interprete e le librerie standard. Molto probabilmente alcuni strumenti di base (come un REPL, nel caso di molti linguaggi di scripting) vengono installati anche come parte del pacchetto standard.

    
risposta data 15.10.2015 - 21:20
fonte
1

Un interprete è fondamentalmente un compilatore al volo. In fase di esecuzione prende il tuo codice e lo traduce in codice macchina. Questo è esattamente ciò che fa un compilatore, tranne un compilatore fa tutto in una volta e prima di eseguire il programma. Un interprete lo traduce quando ne ha bisogno e lo esegue immediatamente. Pensa a un compilatore come a qualcuno che traduce un libro da un'altra lingua alla tua lingua madre e poi ti fornisce il prodotto finito da leggere. Pensa a un interprete come a qualcuno che legge un libro in un'altra lingua e mentre lo leggono lo traducono e dicono la traduzione a voce alta. Alcuni motivi per cui vorresti eseguire la compilazione in fase di esecuzione piuttosto che prima del tempo di esecuzione sono,

  • Il codice verrà eseguito su ogni piattaforma in quanto l'interprete può tenere conto dei dettagli specifici della piattaforma in fase di runtime. Un compilatore standard può compilare solo per il sistema che viene utilizzato per la compilazione e quindi dovrà essere ricompilato su ogni nuovo sistema (Windows, OS X, Linux, ecc.).

  • Quando il codice viene interpretato in fase di esecuzione, l'interprete può eseguire ottimizzazioni specifiche della macchina per utilizzare tecnologie speciali (ad esempio un'istruzione cpu speciale) che non tutte le macchine hanno. Questo a volte può far funzionare il tuo codice più velocemente. Un compilatore standard può solo ottimizzare il tuo codice tanto quanto il risultato finale deve essere in grado di funzionare su un'ampia varietà di versioni di hardware e sistema operativo e quindi può solo utilizzare un set di istruzioni CPU generico e generico è funzionalità e non può avvantaggiarsi di tecnologie speciali che possono essere disponibili con la stessa facilità (i programmi compilati possono ancora ma devono essere fatti manualmente e non è così facile).

Ci sono molti altri motivi per cui potresti voler usare un interprete invece di un compilatore. Se vuoi saperne di più, fai una ricerca su Google "compilato vs interpretato".

Quando installi un interprete, ad esempio, Python sta installando l'interprete (il compilatore on-the-fly) e un set standard di librerie (es. matematica). Ci sono probabilmente anche altre cose che vengono installate e che non sono veramente importanti come IDLE.

    
risposta data 16.10.2015 - 05:33
fonte

Leggi altre domande sui tag