Differenza tra linguaggi compilati, interpretati e pseudocompilati - Versione stampabile +- BorderGame (https://www.bordergame.it) +-- Forum: Programmazione (/Forum-Programmazione--158) +--- Forum: Programmazione (/Forum-Programmazione) +--- Discussione: Differenza tra linguaggi compilati, interpretati e pseudocompilati (/Thread-Differenza-tra-linguaggi-compilati-interpretati-e-pseudocompilati) |
Differenza tra linguaggi compilati, interpretati e pseudocompilati - scl - 16-11-2014 05:22 PM Prima di capire come 'funzionano' questi linguaggi devo fare una breve parentesi:
Analizziamo un pò più a dettagli i linguaggi compilati. La trasformazione da linguaggio di programmazione x al linguaggio macchina (formato da soli 0 e 1, linguaggio binario) avviene grazie al compilatore che tramite diversi passi:
Durante queste fassi il compilatore cerca gli errori e se questi sono presenti avvisa il programmatore bloccando tutta la compilazione. Analizziamo ora invece i linguaggi interpretati. La trasfromazione dal codice sorgente al codice eseguibile avviene grazie all'interprete avviene istruzione per istruzione; a differenza del compilatore l'interprete prende un'istruzione alla volta e l'analizza (e nel caso non ci fossero errori) la trasforma in codice macchina e la manda subito in esecuzione. I linguaggi interpretati sono maggiormente portatili, permettono al programmatore di capire in che istruzione è presente l'errore, ma hanno come difetto la lentezza siccome in genere perchè ogni volta che si esegue il programma si deve far tradurre e eseguire tutto da capo. Concludiamo la guida con i linguaggi pseudocompilati. In breve, in questi linguaggi il codice sorgente viene compilato in un codice intermedio simile all'ASM e dopo viene eseguito da un interprete. In questo modo in termini di velocità esecuzione questi linguaggi possiamo inserirli a metà tra i compilati e gli interpretati, con il bello di avere una grandissima portabilità. Un esempio può essere il Java dove il sorgente traduce il programma in linguaggio Java (.java) in un file bytecode (.class) e poi la Java Virtual Machine lo interpreta. Un altro esempio è il caso dei linguaggio .NET (dot NET) della piattaforma .NET framework di Microsoft (esempi intuitivi VB.NET, C#, ASP.NET, F#). Questi a stesso modo del Java, vengono tradotti in un linguaggio intermedio chiamato MSIL (Microsoft Intermediate Language) eseguito poi da appositi compilatori che ottimizzano il codice a seconda dell'hardware del calcolatore. Lo convertono poi in linguaggio macchina e lo eseguono, creando anche un eseguibile. Pamperone, per Bordergame[censured] |