Linguaggio compilato: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
→Collegamenti esterni: Creato la sezione e aggiunto il template "Collegamenti esterni" |
||
(31 versioni intermedie di 26 utenti non mostrate) | |||
Riga 1:
{{C|La voce, riguardo ad un concetto enciclopedico, allo stato sembra una ricerca originale. Da verificare molte informazioni contenute con l'ausilio di fonti adeguate.|informatica|giugno 2018}}
{{F|programmazione|giugno 2018}}
In [[informatica]] un '''linguaggio compilato''' è un [[linguaggio di programmazione]] implementato tramite un [[compilatore]], un programma che converte il [[codice sorgente]] in [[codice macchina]]. Differisce dal [[linguaggio interpretato]], in cui il codice è eseguito direttamente da un programma detto [[interprete (informatica)|interprete]].
Questo nome è vago e tecnicamente errato, perché ogni linguaggio può essere implementato sia con un compilatore, sia con un interprete. Inoltre, esistono e sono sempre più diffuse soluzioni miste, in cui un compilatore converte il codice in una forma intermedia (spesso detta [[bytecode]]), che viene interpretata o compilata in codice macchina a tempo di esecuzione da un [[compilatore just-in-time]].
== Caratteristiche ==
Un programma compilato è generalmente autonomo, nel senso che non richiede che sia stato installato un secondo programma (l'interprete, appunto) per essere eseguito. Tuttavia, può richiedere che siano installati altri programmi e librerie per svolgere i propri compiti.<br />
Un'altra conseguenza dell'assenza di interprete è il minor "peso" a tempo di esecuzione, in termini di tempo e memoria. Pertanto, un programma compilato risulta mediamente più veloce. Tuttavia, la differenza reale dipende dalle caratteristiche della macchina e dell'interprete utilizzato.<br />
Al tempo dei primi PC, le [[CPU]] erano straordinariamente deboli e lente. Il vantaggio, in termini di velocità di esecuzione del programma, era assolutamente significativo e critico (secondi invece che minuti). Con i PC attuali e in ambiente grafico, la differenza nella velocità di esecuzione che passa fra
*Il file programma compilato è praticamente immodificabile. Non è possibile modificarlo per errore, ed è molto difficile (anche se un bravo [[hacker]] ci riesce) modificarlo deliberatamente.▼
*Il file programma compilato è praticamente incomprensibile all'uomo. Questo è molto utile quando il programma, per libera scelta dell'autore, è coperto da copyright. Un programma compilato può essere copiato illecitamente da chiunque, ma solo pochi riescono a "rubare le idee" che il programma contiene. E' uno dei motivi per cui in ambiro Free Software i programmi compilati vengono ''evitati''.▼
▲
▲
*Non è possibile lanciare il programma eseguibile su un computer con un sistema operativo non compatibile.▼
In termini di rapidità di ''[[debugging]]'' e di modifica del programma, la differenza tra compilatore e interprete è notevolissima.
▲
▲Con i PC attuali in ambiente grafico, la differenza nella velocità di esecuzione che passa fra un linguaggio compilato e un buon linguaggio interpretato rimane proporzionalmente la stessa, ma è praticamente inavvertibile (decimi di secondo invece che centesimi di secondo).
I linguaggi compilati rimangono di scelta in tutti gli ambiti in cui la velocità di esecuzione del software è fondamentale, deve essere monitorata, dove vengono sfruttate a fondo le risorse hardware, o le stesse sono limitate (applicazioni embedded, real time, videogiochi, multimedia).
In questi casi si rinuncia alla relativa facilità di realizzazione del software con linguaggi interpretati, in cambio di maggior controllo delle risorse offerte dai linguaggi compilati.
==Voci correlate==▼
*[[Linguaggio interpretato]]▼
*[[Linux]]▼
*[[Windows]]▼
*[[Sistema operativo]]▼
*[[Python]]▼
== Collegamenti esterni ==
* {{Collegamenti esterni}}
▲==Voci correlate==
▲[[Linguaggio interpretato]]
▲[[Linux]]
▲[[Dos]]
▲[[Windows]]
▲[[Sistema operativo]]
▲[[Python]]
[
▲[Categoria:informatica]
|