Un linguaggio di programmazione è un metodo di codifica che prevede una serie di istruzioni interpretabili ed eseguibili dai computer. I processori (CPU) dei computer sono in grado di elaborare solo istruzioni in codice macchina, cioè codice binario composto da 0 e 1 che come si può facilmente intuire è molto difficile da interpretare per un uomo.
Sono nati pertanto i diversi linguaggi di programmazione con i quali si può progettare e scrivere in modo più semplice un codice sorgente che, una volta compilato, fornisce il programma binario effettivamente eseguibile dall’elaboratore.
Esistono molte tecniche e metodologie di programmazione che si possono raggruppare in due macro paradigmi:
- Procedurale (Procedural Programming),
- Orientata agli Oggetti (OOP Object Oriented Programming).
Di seguito una breve overview.
Programmazione Procedurale
Questo stile di programmazione può essere ricondotto all’utilizzo di processori un po’ vecchiotti con un approccio sequenziale all’esecuzione dei comandi.
Con i linguaggi che prevedono una codifica procedurale, le istruzioni vengono eseguite in serie una dopo l’altra, per la lettura e la modifica di una memoria condivisa (memoria RAM, disco rigido) e nella gestione delle periferiche (tastiera, monitor, stampante, ecc.).
Nei programmi procedurali le istruzioni sono organizzate in blocchi funzionali, procedure progettate per uno scopo specifico, anche denominate subroutine o function a seconda del linguaggio e del ruolo all’interno del programma stesso, che possono essere raggiunte in cascata oppure utilizzando il comando go to da più punti del codice.
Il codice viene scritto ed eseguito dall’elaboratore passo dopo passo dall’inizio alla fine (top-down) quindi è molto facile da seguire soprattutto nei programmi più semplici.
Esempi di linguaggi con approccio procedurale sono: Cobol, Basic
e Fortran.

Programmazione ad Oggetti
I linguaggi Object Oriented attualmente
sono i più largamente usati ed i più potenti in relazione alle architetture
hardware e software nei quali vengono utilizzati.
I programmi sono scritti come una collezione di oggetti auto-consistenti che
comunicano tra di loro.
Si basano sulle classi, cioè istanze di oggetti software nei quali rivestono maggiore importanza i dati piuttosto che il flusso logico.
Una classe può essere definita come un contenitore che abbina i dati con le operazioni/azioni che possono essere eseguite su di essi. Le caratteristiche di ciascun oggetto (classe) vengono chiamate proprietà o attributi, mentre le azioni sono dette metodi.
Diversamente dai linguaggi precedentemente descritti, gli OOP hanno un approccio diprogettazione bottom-up, per prima cosa non va definita la struttura del programma generale ma vanno progettati gli oggetti, le modalità con le quali gestiscono le proprie informazioni e le interfacce con cui interagiscono con gli altri oggetti.
Esempi di linguaggi Object Oriented sono: C++ e Java.
