Qual è la differenza tra un linguaggio assembly e un linguaggio ad alto livello?
Linguaggio di assemblaggio
Questo usa parole o brevi "mnemotecniche" (abbreviazioni) invece dei numeri binari per le operazioni del linguaggio macchina. Questo permette ai comuni mortali di programmare direttamente l'assemblaggio. L'assembly può essere assemblato a mano (dai veri fanatici o su piattaforme minori), o si usa un programma chiamato assemblatore per trasformarlo in binario per voi.
Come non tutti i linguaggi macchina sono uguali, non tutti i linguaggi assembly sono uguali. Un grande esempio di questo è il semplice caricamento di un valore in un registro.
Linguaggi di alto livello
Questo termine è spesso abusato e mal attribuito a seconda della prospettiva di ognuno. Per chiunque sia seriamente interessato a scrivere in linguaggio assembly/macchina, tutto ciò che non è assembler o linguaggio macchina è un "linguaggio di alto livello" -- le persone che non si occupano di assembler spesso chiamano linguaggi come il C un "linguaggio di basso livello" e linguaggi come il BASIC "di alto livello"... Personalmente la considero una distinzione senza senso, ma capisco da dove viene questa nozione. Si basano su quanto si è "vicini all'hardware". Più il risultato è vicino al linguaggio macchina, più è di "basso livello", e più è un'astrazione per facilità d'uso, più è "alto" lo chiamano.
Infatti gli idioti che dicono che il C è vicino all'assembly mi fanno incazzare perché non sanno di cosa stanno parlando; questo è sempre stato vero solo su UNA piattaforma, e a nessuno importa più un pesce viola volante dei mainframe DEC!
L'intera ragione per cui esistono i linguaggi di alto livello è di togliere il "lavoro pesante" dalla programmazione. Rimuove molto del controllo sulla velocità rispetto alla dimensione del codice, tipicamente risultando in un codice più lento/più grande; ma il vantaggio è che il codice è più facile da leggere, più facile da mantenere, e portabile attraverso diverse piattaforme di processori.
Articoli simili
- Qual è la differenza tra linguaggio macchina, linguaggio assembly e linguaggio di alto livello nei computer?
- Perché il linguaggio assembly è migliore del linguaggio a livello macchina?
- Il linguaggio assembly è considerato un linguaggio di programmazione funzionale?
- Qual è la differenza tra un'istruzione e una direttiva nel linguaggio assembly?