Compilazione e runtime

anonymous_f3d38a
Ciao a tutti,

Domanda simile alla precedente, riguardo cultura generale sulla programmazione.
Sento parlare i programmatori di "compilazione", e di "runtime" quando parlano di "IDE".
Sono delle fasi della programmazione?
In che modo sono legate?

Risposte
apatriarca
La compilazione è la conversione dal codice sorgente (un file di testo con le istruzioni che vuoi eseguire scritte in un linguaggio di alto livello) in codice macchina che il computer è in grado di eseguire.

"runtime" è il periodo temporale in cui il programma è in esecuzione.

"IDE" significa "Integrated development environment" e si tratta di un programma che integra tutti gli strumenti necessari per programmare (come l'editor di testo o il compilatore o altro).

Posso chiederti lo scopo di queste domande? Sono tutti termini così generici e spesso non completamente legati tra di loro che è difficile tu possa arrivare a capire le conversazioni di programmatori con queste definizioni.

Obidream
"Sergio":
[quote="apatriarca"]La compilazione è la conversione dal codice sorgente (un file di testo con le istruzioni che vuoi eseguire scritte in un linguaggio di alto livello) in codice macchina che il computer è in grado di eseguire.

"runtime" è il periodo temporale in cui il programma è in esecuzione.

Quasi :wink:
La compilazione potrebbe essere la conversione dal codice sorgente in un codice "intermedio", indipendente dall'ambiente in cui dovrà essere eseguito, che poi il "runtime environment" converte in codice macchina.
È più o meno così in Java.
[/quote]
Penso che questa sia la definizione di linguaggio interpretato ( Java appunto) rispetto a quelli compilati (es. C)

apatriarca
@Sergio Cercavo di semplificare un po' non volendo introdurre nuovi termini o casi particolari. Suppongo si possa definire la compilazione come il processo di trasformazione da un file sorgente (di solito contenente istruzioni in un linguaggio di programmazione - ma non solo) in un file contenente istruzioni per un qualche tipo di macchina reale o immaginaria. Nel caso di linguaggi come Java o C# la compilazione avviene per una macchina ideale. Questo codice intermedio viene spesso chiamato bytecode oppure intermediate language. Per eseguire tale codice intermedio è di solito necessaria una ulteriore compilazione a runtime. In alternativa la macchina può essere "simulata" da un programma chiamato interprete.

@Obidream Che io sappia Java non è più interpretato da anni (decenni?), ma fa uso di un Just In Time (JIT) compiler. Il linguaggio intermedio viene cioè convertito in linguaggio macchina e poi eseguito.

vict85
@anonymous_f3d38a. Invece di chiedere il significato di termini dovresti acquistare del materiale e studiare (o usare un corso qualsiasi di informatica online). Insomma il significato del termine compilazione non è sufficiente per capirlo. Perché ti servono questi termini?

anonymous_f3d38a
Ciao! In realtà non "mi servono" questi termini, in quanto non studio e non lavoro nel settore informatico.
Dato che molti miei conoscenti lavorano come programmatori, volevo farmi un'idea.
Non sono andato a cercare materiale didattico in quanto non ho bisogno di definiziono rigorose e magari non sarei stato neanche in grado di capire.
Volevo solo farmi un'idea, vi ringrazio perché penso di essermela fatta.

La compilazione è una fase sempre necessaria prima dell'esecuzione del programma?

apatriarca
No, ci sono linguaggi che possono essere 'eseguiti' senza dover essere compilati. In questo caso c'è un programma, chiamato interprete, che legge le istruzioni contenute nel codice sorgente e le esegue.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.