Paradigmi di programmazione

Il termine paradigma di programmazione indica un modello concettuale, un insieme di strumenti, regole, logiche, che un linguaggio mette a disposizione del programmatore per la realizzazione di un programma software.

La scelta del linguaggio di programmazione e, di conseguenza, del paradigma da utilizzare, dipende dalla natura e dal contesto del problema da risolvere, ma anche, a volte, dalle abitudini e preferenze del programmatore.

I principali paradigmi di programmazione sono:

  • paradigma procedurale o imperativo: un programma è costituito da una sequenza di istruzioni che modificano il contenuto della memoria (valori delle variabili), e/o da istruzioni che determinano il flusso di esecuzione delle altre istruzioni (selezione ed iterazione).
    In altri termini, attraverso questo paradigma, il programma indica alla macchina COME risolvere il problema, ossia la sequenza esatta di azioni da compiere per giungere alla soluzione.
    Si dice anche che in questo paradigma, un programma è costituito dai dati e da un algoritmo, ossia:

    PROGRAMMA = DATI + ALGORITMO

    Esempi di linguaggi imperativi sono: C, Pascal, Basic, Cobol, ...
  • paradigma dichiarativo: un programma è costituito da istruzioni che specificano quale risultato si desidera ottenere.
    In altri termini, il programmatore non indica le azioni da compiere per giungere al risultato, bensì COSA si desidera ottenere in output.
    Esempi di linguaggi dichiarativi sono: SQL, Prolog, ...
  • paradigma funzionale: un programma è costituito esclusivamente da funzioni (sul modello delle funzioni matematiche), che prendono delle informazioni in input e restituiscono dei risultati in output.
    Il programma non ha uno stato, costituito da valori di variabili, ma le informazioni necessarie all'esecuzione di qualunque sua funzione sono fornite in input oppure sono il risultato della esecuzione di altre funzioni.
    Un concetto molto importante nell'ambito della programmazione funzionale è la ricorsione, ossia la possibilità di una funzione di richiamare se stessa.
    Esempi di linguaggi funzionali sono: Lisp, APL, Scheme, F#, ...
  • paradigma logico: un programma è costituito da:
    • fatti, ossia dati certi della realtà
    • regole, ossia conclusioni che si basano su ipotesi
    L'esecuzione di una richiesta, che indica una domanda a cui il programma deve rispondere attraverso deduzioni (inferenze) basate sulla conoscenza disponibile.
    Il principale linguaggio basato sul paradigma logico è il Prolog.
  • paradigma ad oggetti: un programma è costituito da un insieme di oggetti che comunicano tra loro scambiandosi messaggi.
    Tali oggetti sono generati da modelli astratti (classi) costruiti dal programmatore sulla base di una serie di principi fondamentali della programmazione orientata agli oggetti (O.O.P. Object Oriented Programming).
    Esempi di linguaggi funzionali sono: Java, C++, C#, Python, Smalltalk, Eiffel, ...