Cos'è un linguaggio di programmazione?

Articolo approfondimento del di

Dialogare con la Macchina

Quando si parla di linguaggio di programmazione ci si riferisce ad un vero e proprio linguaggio strutturato comprendente un dizionario con regole di sintassi ben precise.

Prima di addentrarci nel significato di linguaggio di programmazione dobbiamo soffermarci sul significato di programmazione e in particolare sulla parola "Programma".

Un programma è composto da una serie istruzioni in grado di risolvere un determinato problema. In informatica queste istruzioni vengono "date in pasto" ad un computer il quale restituirà un risultato in base alle istruzioni dettate dal programma.

Il linguaggio di programmazione quindi, è una lingua nel quale scrivere queste istruzioni. Linguaggi di Programmazione come Java, C++, Assembly non sono nient'altro che delle lingue più o meno comprensibili in grado di scrivere istruzioni per le macchine.

I linguaggi di programmazione si occupano di dialogare con la macchina indicandogli quali operazioni deve compiere. Al contrario di quanto si possa pensare i linguaggi di programmazione si avvicinano più all'utente che alla macchina, infatti quando si scrive un programma, quest'ultimo deve essere decodificato da un compilatore in linguaggio binario.

Le macchine sono in grado di leggere solo sequenze di 0 e 1.

Quando si parla di linguaggio macchina ci si riferisce proprio a questo e per dialogare con un computer è necessario scrivere nel suo linguaggio.

Ad esempio, per scrivere la parola "ciao" composta da solo 4 lettere, bisogna inviare al calcolatore il seguente codice:

01100011 01101001 01100001 01101111

Ci si accorge subito che scrive in questa forma è impossibile, soprattutto quando la sequenza di 0 ed 1 sfiora le migliaia.

Per questo motivo si è cercato di creare linguaggi di programmazione il meno possibile vicini ai linguaggi macchina e il più vicino agli utenti.

Prima dei linguaggi di programmazione per indicare quale operazioni doveva svolgere la macchina si spostavano fisicamente porzioni della macchina stessa: inserendo, togliendo o spostando connettori, fili e dischi.

La Storia

Uno dei più famosi linguaggi che ha gettato la base per la programmazione moderna è il linguaggio Assembly, considerato in assoluto uno dei linguaggi più vicini alla macchina. Essendo molto vicino alla parte hardware il linguaggio Assembly cambia per ogni famiglia di processori. L'assembly, come tutti i linguaggi di programmazione ha bisogno di un compilatore che converta il suo codice traducendolo in una serie di bit. Questo compilatore si chiama Assembler e traduce il linguaggio Assembly rendendolo leggibile per la macchina.

Il linguaggio Assembly nonostante contenga parole chiavi intuitive come "MOVE" o "ADD" risulta molto macchinoso e complesso, infatti per scrivere semplici programmi c'è bisogno di un'elevata quantità d'istruzioni, questo rende la programmazione in Assembly molto lenta specialmente se bisogna scrivere programmi di grandi dimensioni. Inoltre ritornare su un programma scritto in codice Assembly per modificarlo è un'impresa ardua, anche per chi ha scritto quello stesso programma.

Questa limitazione decretò la nascita di altre linguaggi e nel 1954 nacque il padre di tutti i linguaggi moderni: il Fortran, inventato dai ricercatori Ibm. Questo linguaggio si differenziò dai suoi antecedenti per la facilità d'utilizzo delle espressione booleane come ad esempio l'istruzione IF.

Il Fortran, insieme ad altri linguaggi come ad esempio L'Algol, gettò le basi per i recenti linguaggi di programmazione, come il Basic il famosissimo Pascal insegnato nelle scuole fino al 1999 per poi essere sostituto dal più recente C discendente del Pascal.

Come si può notare tutti i linguaggi sono legati tra loro ed ognuno ha contribuito alla nascita dell'altro.

In sostanza, a cosa servono i linguaggi di programmazione?

A tutto! Un linguaggio ti permette di fare qualsiasi cosa, si possono creare videogiochi, sistemi operativi, applicazioni e qualsiasi altra cosa si desidera inserendo "semplicemente" le istruzioni adeguate.

Quali sono i linguaggi più famosi?

Il linguaggio in assoluto più famoso di tutti è il C, ciò non significa che sia il migliore, in quanto definire uno migliore dell'altro non è tecnicamente impossibile. Questo perchè ogni linguaggio di programmazione ha dei pro e dei contro in base all'utilizzo che se ne fa. Alcuni linguaggi sono nati esclusivamente per un motivo e sono più efficaci di altri per alcune applicazioni e altri ancora sono più universali e vengono utilizzati per altri scopi come l'insegnamento.

Sul sito Langpop, sono disponibili vari grafici sulla frequenza di utilizzo dei più famosi linguaggi, ordinati in base a diversi parametri.

"Dove va scritto" un programma?

In base al linguaggio che si usa, si possono utilizzare diversi ambienti di sviluppo per programmare ed esercitarsi.

Di seguito trovate i più popolari linguaggi di programmazione con gli ambienti di sviluppo più indicati.

Linguaggio Ambiente di Sviluppo Sito Ufficiale Link Download
C / C++ / C# Dev-C++ bloodshed.net Download
Pascal Dev-Pascal bloodshed.net Download
C++ / Java / PHP Eclipse eclipse.org Download
Java / PHP NetBeans Ide netbeans.org Download
Python IDLE Python python.org Download

Curiosità

L'Assembly è il linguaggio di programmazione più efficiente di tutti, in quanto ogni famiglia di CPU ha una sintassi Assembly specifica ed ogni riga di codice è indicata esclusivamente per quella famiglia di processori. Quando si programma in altri linguaggi, avviene una traduzione di quest'ultimi ed inevitabilmente la traduzione richiede un uso di memoria maggiore e una percentuale di errore non sempre trascurabile.

Quando si scrivono programmi che devono interfacciarsi solamente con l'hardware si usa il linguaggio Assembly, in quanto un errore riguardanti le parti hardware potrebbe creare danni irreversibili. I Sistemi operativi come Windows Xp sono scritti in buona parte in Assembly e in C / C++.

Questo perché quando si dialoga con l'hardware bisogna essere il più precisi possibili altrimenti si rischia di causare danni gravi. Il linguaggio C, dovendo subire una traduzione molto complessa non ci assicura che il dialogo con le parti meccaniche avvenga sempre in maniera perfetta.