LINGUAGGIO MACCHINA
Il linguaggio macchina o codice macchina è il linguaggio in cui sono scritti i programmi eseguibili per computer. Può venire classificato linguaggio di programmazione, sebbene quest'ultima espressione sia più spesso utilizzata per indicare i linguaggi di alto livello con cui si scrivono programmi non direttamente eseguibili, ma che richiedono una traduzione in linguaggio macchina, per esempio per mezzo di un compilatore. Il processore o CPU è quella componente hardware di un computer che è in grado di eseguire i programmi scritti in linguaggio macchina. Il linguaggio macchina è basato su un alfabeto detto binario perché comprende due soli simboli, generalmente indicati con 0 e 1. Un simbolo di questo alfabeto viene detto bit.
L'espressione "il linguaggio macchina" è, strettamente parlando, scorretta; infatti, ogni modello di processore è in grado di comprendere un proprio particolare linguaggio macchina. Tuttavia, pur variando nella sintassi specifica, i linguaggi macchina di tutti i processori sono basati su un insieme di principi e di concetti analoghi.
Se un determinato processore P1 comprende esattamente il linguaggio di un altro processore P2, si dice che P1 è compatibile con P2. Per esempio, i computer cosiddetti IBM compatibili sono chiamati in questo modo perché sono in grado di comprendere un linguaggio macchina inventato dalla IBM e in seguito applicato sulla maggior parte dei personal computer.
Come nel linguaggio naturale, nel linguaggio macchina i simboli dell'alfabeto utilizzato (1 e 0) sono organizzati in "parole" che a loro volta costituiscono "frasi". Le frasi del linguaggio macchina sono dette istruzioni; ognuna di esse ordina al processore di eseguire un'azione elementare afferente allo stato interno del computer, come la lettura di una locazione di memoria oppure il calcolo della somma dei valori contenuti in due registri. Le frasi sono generalmente costituite da una parola iniziale detta codice operativo iniziale, che indica il tipo di azione da eseguire, seguita da altre parole che specificano gli eventuali parametri (o dati) a cui l'azione deve essere applicata (per esempio "SOMMA"-"15"-"20"). Se consideriamo la prima parola come "verbo" della frase, possiamo dire per analogia che il linguaggio macchina prevede solo verbi all'imperativo; non a caso, i linguaggi di programmazione che presentano questa caratteristica sono detti proprio linguaggi imperativi
I processori tradizionali erano in grado di eseguire una sola istruzione per volta; attualmente si stanno diffondendo tecnologie (come quella dei processori superscalari) che consentono l'esecuzione di più istruzioni in parallelo.
Le istruzioni che possono comparire in un programma in linguaggio macchina descrivono azioni semplici quali "somma", "sottrai", "dividi".