Che cos'è un linguaggio di programmazione di basso livello?
Vi è un certo disaccordo riguardo alla definizione esatta di un linguaggio di programmazione di basso livello, ma tutte le definizioni condividono alcune cose in comune per quanto riguarda le caratteristiche di tale linguaggio informatico. Tali caratteristiche includono: somiglianza con il codice binario, conoscenza richiesta del ruolo dell'unità di elaborazione centrale (CPU) e capacità del programmatore di controllare l'hardware tramite il linguaggio. Alcune persone considerano qualsiasi linguaggio informatico di basso livello se non è simile a una lingua parlata dalle persone. Altri considerano qualsiasi linguaggio che richiede al programmatore di comprendere il funzionamento intricato e molto complesso della CPU di basso livello. Va ricordato che un linguaggio di programmazione veramente di basso livello si adatta generalmente a tutte queste descrizioni.
Il codice binario, chiamato anche codice macchina, è l'unico linguaggio che la CPU, o il "cervello" di un computer, comprende e "parla". Il codice macchina, se visualizzato da una persona, assomiglia a molte sequenze dei numeri 1 e 0; rappresentano uno stato di essere acceso o spento, proprio come una luce che viene accesa o spenta. Il codice di un linguaggio di programmazione di alto livello sembrerebbe molto diverso dal codice della macchina in quanto contiene simboli e parole reali che sono usate in una lingua, di solito inglese, di cui la gente parla. Ciò non significa, tuttavia, che qualcuno che non è un programmatore di computer comprenda il codice in una lingua di alto livello più di quanto non lo sia in una lingua di basso livello.
Tra i maggiori vantaggi di un linguaggio di programmazione di basso livello vi è la capacità e la libertà di esercitare un controllo preciso su cose come l'utilizzo della memoria e il tempo di elaborazione. Ciò significa che i programmi scritti in un linguaggio di basso livello dovrebbero fare un uso molto efficiente delle risorse di sistema, il che può essere molto desiderato quando si codifica per sistemi con risorse molto limitate. Un tale vantaggio non arriva senza un prezzo. Gli sviluppatori e gli ingegneri che codificano in un linguaggio di programmazione di basso livello devono avere una buona conoscenza delle funzioni della CPU per poter scrivere istruzioni che influiscono sulla memoria e sui tempi di elaborazione.
La codifica in un linguaggio di programmazione di basso livello richiede molto tempo e è noiosa. Ciò comprensibilmente aumenta i costi associati all'avvio di un programma sviluppato in un tale linguaggio, poiché l'equivalente di un minimo di due righe di codice in un linguaggio di alto livello può richiedere fino a 20 righe in un linguaggio di programmazione di basso livello. Un tale sviluppo lento rende le lingue di basso livello adatte principalmente per programmi molto piccoli. Non vengono quasi mai utilizzati per lo sviluppo di programmi più grandi.