Un paradigma di programmazione è un modello che permette di descrivere astrattamente l’algoritmo (cioè il metodo di soluzione di un problema).
I principali paradigmi di programmazione sono:
-
il paradigma procedurale,
-
il paradigma dichiarativo.
Il paradigma procedurale
Il paradigma procedurale descrive come deve essere risolto un problema.
La programmazione con il paradigma procedurale si può suddividere in:
-
programmazione imperativa: si basa su esplicite richieste fatte all’esecutore del programma; la soluzione del problema è descritta come una sequenza di azioni che producono dei cambiamenti di stato nell’ambiente (come la modifica del valore delle variabili);
-
programmazione orientata agli oggetti: parte dal concetto di oggetto che descrive proprietà e azioni che un oggetto può compiere; la soluzione del problema è descritta dalle interazioni tra gli oggetti.
I linguaggi imperativi sono chiamati anche algoritmici.
Esempi di linguaggi imperativi: linguaggio macchina, Assembler, Pascal, C, Cobol.
I linguaggi orientati agli oggetti si dicono puri se permettono di usare solo oggetti.
Esempi di linguaggi ad oggetti: Java, C++.
Programmazione basata sugli eventi
Sia nella programmazione imperativa che in quella orientata agli oggetti l’esecuzione può essere guidata dagli eventi, cioè alcune azioni possono essere eseguite quando si verificano determinati eventi, per esempio un’azione dell’utente, il caricamento del programma o il passare del tempo.
Di solito la programmazione guidata dagli eventi è legata all’interfaccia grafica.
Le interfacce grafiche sono spesso realizzate tramite oggetti.
Esempi di linguaggi basati sugli eventi: Visual Basic.
Il paradigma dichiarativo
Il paradigma dichiarativo descrive che cosa si vuole ottenere come soluzione e non come fare per raggiungerla; in questo caso è l’esecutore che è predisposto per seguire opportune strategie per determinare la soluzione.
Il paradigma dichiarativo comprende:
-
programmazione logica: descrive i fatti e le relazioni tra i fatti e permette di ricavarne delle conseguenze;
-
programmazione funzionale: il programma è costituito da un insieme di funzioni che elaborano liste di simboli;
-
linguaggi di markup: usano dei codici (tag) per stabilire il ruolo degli elementi;
-
linguaggi di interrogazione di database.
Esempi di linguaggi logici: Prolog.
Esempi di linguaggi funzionali: Lisp.
Esempi di linguaggi di markup: HTML e XHTML, XML.
Esempi di linguaggi di interrogazione di database: SQL.