Differenze tra di alto livello e di basso livello Linguaggi di programmazione

January 21

Differenze tra di alto livello e di basso livello Linguaggi di programmazione


Non importa quale tipo di linguaggio utilizzato per scrivere un programma, il computer riceve i comandi dalla stessa serie di semplici istruzioni definite per la sua architettura. linguaggi di alto livello, come i linguaggi orientati agli oggetti e di scripting, danno ai programmatori un utile set di strumenti per la chiamata combinazioni di queste semplici istruzioni in un formato conciso e leggibile. linguaggi di basso livello offrono il computer sue istruzioni una alla volta e richiedono la conoscenza dei suoi registri CPU e set di istruzioni.

Codice Macchina e Programmazione Assembly

linguaggio Assembly è stato il primo tentativo di rendere la programmazione più semplice per le persone che fornire direttamente il codice macchina alla CPU. Codice macchina è la forma più elementare di istruzioni del computer, codificati come numeri interi in formato binario. Assemblea utilizza un concetto chiamato astrazione per convertire i comandi leggibili, come ad esempio ADD, MOV e INC, ai numeri che un computer capisce. Anche se la programmazione assembly utilizza l'astrazione, è un linguaggio di basso livello perché richiede la conoscenza dell'architettura di un computer. Pertanto, a differenza di codice di alto livello, il codice assembly per una architettura, come 86, è incompatibile con un altro, come PowerPC.

Assemblatori, compilatori e interpreti

linguaggi di basso livello usano assemblatori di eseguire la scansione del codice leggibile e organizzare le istruzioni di montaggio in una sequenza compatibile con le unità di invio di una CPU, il componente che esegue ogni istruzione. linguaggi di alto livello utilizzano i compilatori o interpreti per convertire il codice leggibile molto astratta in codice macchina in fase di esecuzione o di tempo di compilazione. I compilatori producono programmi più rapida esecuzione degli interpreti fanno perché compilatori convertire tutti i comandi leggibili in codice macchina prima che il programma viene eseguito. Interpreti convertire il codice sorgente in codice macchina in fase di esecuzione, in quanto ogni istruzione viene eseguita, rallentando le prestazioni.

Tipi di alto livello Lingue

Linguaggi come C, C ++ e Java usano compilatori, e di questi tre, C è il più veloce perché non richiede una tabella di ricerca per le classi, come fa C ++, oppure come una macchina virtuale, come fa Java. I linguaggi di scripting, come Python, PHP e Bash, eseguiti in interpreti e non hanno bisogno di essere compilato. Questa comodità li rende ideali per la scrittura di codice che deve essere aggiornato di frequente, ma li fa scelte sbagliate per compiti ad alta intensità di prestazioni, come ad esempio il rendering 3-D. La maggior parte dei linguaggi di alto livello sono linguaggi imperativi perché definiscono in modo esplicito ogni istruzione così come la sua fine nel programma. Meno comunemente utilizzati linguaggi funzionali, come Haskell, Mercurio e SequenceL, dire al computer di come raggiungere il risultato desiderato senza definire una procedura passo-passo.

Programmazione orientata agli oggetti

linguaggi orientati agli oggetti, come ad esempio C ++, Objective C, Java, Python e PHP, sono i linguaggi di programmazione applicazioni più comuni e possono utilizzare i compilatori o interpreti. Ciò che li rende diversi da altri linguaggi di alto livello è il loro uso di classi, ereditarietà e polimorfismo. Questi concetti prendono mesi di studio per capire, ma in termini semplici, una classe è una struttura di dati personalizzabile con le funzioni incorporate per cambiare lo stato dei suoi dati; eredità è il processo di aggiunta di campi e le funzioni di dati per classi di formare nuove classi figlie esistenti; e il polimorfismo è la capacità di una classe di avere molte identità allo stesso tempo. A causa di questa gerarchia di classe, lingue OOP richiedono più tempo per compilare ed eseguire rispetto ad altri linguaggi di alto livello, ma il processo di eredità li rende migliore per l'organizzazione di grandi applicazioni con molti componenti e scopi.