In programmazione, un linguaggio di alto livello è un linguaggio ad alto livello di astrazione, che cioè astrae dalle caratteristiche fisiche della macchina in cui si opera. Caratteri generaliOgni computer può comprendere solo il proprio linguaggio macchina, che quindi è diverso da processore a processore. I linguaggi macchina sono formati da istruzioni elementari, che vengono codificate in forma numerica e che consentono di effettuare operazioni aritmetiche, conversioni di bit e poco altro. Scrivere programmi in linguaggio macchina è estremamente sconveniente: un'operazione basilare può richiedere anche tre o quattro istruzioni; si rende così necessario molto codice anche per i programmi più semplici. Il fatto che tale codice sia solamente numerico comporta grosse possibilità di errori e difficoltà nell'individuarne. È necessario inoltre avere continuamente a che fare con le caratteristiche fisiche della macchina in cui si programma: bisogna ad esempio specificare manualmente gli indirizzi di memoria in cui salvare le informazioni e i registri del processore in cui mantenere i dati temporanei. L'ultimo svantaggio è che, essendo il linguaggio macchina specifico per ogni piattaforma, è necessario riscrivere interamente un programma per farlo funzionare su un altro processore. Per ovviare a questi problemi sono nati i linguaggi di programmazione di alto livello: in essi una singola istruzione consente di effettuare una operazione semplice, ma completa. Le istruzioni non sono in forma numerica, sono bensì parole (generalmente in lingua inglese), il cui significato corrisponde all'operazione che effettuano. Un secondo e importantissimo vantaggio dei linguaggi di alto livello è l'alto livello di astrazione: il programmatore non avrà mai a che fare con indirizzi di memoria, registri del processore, o in generale con le caratteristiche fisiche di una singola macchina: grazie anche all'appoggio del sistema operativo, la scelta degli spazi di memoria avviene in maniera automatica. Infine (grazie alle politiche di traduzione che vedremo nella sezione seguente) un programma può essere portato senza modifiche su potenzialmente qualsiasi computer. I linguaggi di alto livello sono immensamente più pratici per lo sviluppatore. Tuttavia non sono comprensibili dalla macchina (che come abbiamo detto può comprendere solo il proprio linguaggio macchina) e richiedono perciò processi di traduzione. Politiche di traduzione del linguaggio di alto livello in linguaggio macchinaTraduzione che avviene una sola volta: la compilazione In questa politica di traduzione, un programma chiamato compilatore si occupa della traduzione. Questa avviene una sola volta: durante la compilazione le istruzioni in linguaggio di alto livello vengono tradotte in istruzioni macchina; ha così origine un file nel linguaggio macchina locale, che costituisce un eseguibile. Traduzione in tempo reale: l'interpretazione In questo modello, il listato non viene tradotto una sola volta, bensì tutte le volte che viene eseguito. Un programma apposito, l'interprete, durante l'esecuzione del programma traduce ogni istruzione di alto livello in istruzione macchina. In questo caso si ha una miglior portabilità, ma peggiori prestazioni. |
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net