Che differenza c’è tra linguaggio macchina e di programmazione?

Normalmente con il termine “linguaggio” si intende un certo insieme di simboli e di regole specifiche che permettono alle persone che conoscono quel determinato linguaggio di esprimersi comunicando tra di loro. Ad esempio, il linguaggio naturale che tutti noi usiamo è formato da un ben preciso insieme di lettere, parole e regole grammaticali che ne disciplinano il normale utilizzo. Siccome, però, i computer non capiscono direttamente il linguaggio naturale è nata pertanto l’esigenza di creare degli appositi linguaggi di comunicazione chiamati, in gergo, linguaggio macchina e linguaggio di programmazione. Ma che differenza c’è tra linguaggio macchina e linguaggio di programmazione?

Indice

Che differenza c’è tra linguaggio macchina e linguaggio di programmazione?

Il linguaggio macchina non è altro che un particolare linguaggio che, mediante l’utilizzo del cosiddetto sistema binario, permette al processore del PC di eseguire i comuni programmi del computer. Tuttavia, nel linguaggio macchina i simboli dell’alfabeto utilizzato non sono 21 come avviene nel nostro linguaggio bensì solamente due, ovvero 0 e 1, attraverso i quali risulta comunque possibile produrre le parole e, di conseguenza, le frasi da utilizzare. Le cosiddette istruzioni macchina, o più semplicemente le istruzioni, non sono infatti nient’altro che queste particolari frasi messe insieme per esprimere un determinato concetto.
Siccome, però, scrivere direttamente i programmi nel linguaggio macchina risulta piuttosto complicato, per facilitare il compito a tutti i vari programmatori viene perciò utilizzato un altro speciale linguaggio in grado di “tradurre” il nostro comune linguaggio nel linguaggio macchina utilizzato dai computer. Questo ulteriore linguaggio prende il nome di linguaggio di programmazione e, mediante l’utilizzo di istruzioni ancora più semplici da impartire, consente per l’appunto di scrivere il codice sorgente del programma che sarà successivamente eseguito dal processore del computer una volta “tradotto” automaticamente nel linguaggio macchina.
Al contrario del linguaggio macchina, non esiste però un solo linguaggio di programmazione. Al mondo, infatti, a seconda dei casi, esistono diversi linguaggi di programmazione più o meno nuovi:

  • tra i linguaggi di programmazione meno recenti ci sono l’assembly (spesso erroneamente chiamato assembler), il BASIC (che si pronuncia bèsic), il COBOL, il C, il Pascal ed il Fortran;
  • tra i linguaggi di programmazione più recenti ci sono invece Java (che si pronuncia giàva), C++ (che si pronuncia sì plas plas), Perl, Python (che si pronuncia paitòn), Visual Basic (che si pronuncia visual bèsic) e Ruby.

Oltre a questi linguaggi di programmazione ne esistono però molti altri ma quasi tutti i linguaggi di programmazione esistenti non consentono altro che impartire le istruzioni al computer mediante l’utilizzo di particolari termini, generalmente in lingua inglese, indicando passo passo le procedure da svolgere per portare a termine un certo compito.

Il ruolo dei connettivi logici

Le istruzioni impartite ad un computer attraverso l’utilizzo di un determinato linguaggio di programmazione sono delle vere e proprie frasi che vengono messe in relazione tra di loro mediante l’utilizzo di particolari elementi grammaticali di collegamento chiamati, in gergo, connettivi logici. Fra questi, gli elementi più importanti da prendere in considerazione sono soprattutto tre, ovvero:

  • AND, che viene utilizzato per collegare due elementi e risulta vero non appena le dichiarazioni degli elementi risultano entrambe vere. Ad esempio, A AND B è Vero se sia A che B risultano entrambe vere;
  • OR, che viene utilizzato per collegare due elementi e risulta vero se almeno una delle dichiarazioni degli elementi risulta vera. Ad esempio, A OR B è Vero se risulta vera A o risulta vera B;
  • NOT, che inverte semplicemente il risultato della dichiarazione. Ad esempio, se A viene considerata Vera, NOT A viene considerata Falsa.

Per capire meglio il funzionamento dei connettivi logici, e di conseguenza dell’algebra di Boole, che a sua volta riveste un ruolo di fondamentale importanza nell’intero mondo dell’informatica, basta dare un’occhiata alla seguente immagine nella quale lo zero assume il significato di Falso mentre l’uno assume il significato di Vero.

AND, OR e NOT

Arrivati dunque a questo punto dovresti aver finalmente capito che differenza c’è tra linguaggio macchina e linguaggio di programmazione.