Glossario Paradigmi di programmazione

I modi di pensare il codice: programmazione a oggetti, funzionale e procedurale. I paradigmi spiegati in modo accessibile.

  • P

  • Programmazione a attori

    Modello di concorrenza in cui unità indipendenti dette attori comunicano solo scambiandosi messaggi, senza memoria condivisa. Semplifica la costruzione di sistemi concorrenti e distribuiti riducendo i problemi di sincronizzazione.
  • Programmazione a componenti

    Paradigma che costruisce il software assemblando componenti riutilizzabili e sostituibili, con interfacce ben definite. Favorisce modularità e riuso, permettendo di comporre sistemi da parti indipendenti.
  • Programmazione a eventi

    Paradigma in cui il flusso del programma è guidato da eventi, come input dell'utente o messaggi, a cui rispondono apposite funzioni. È tipico delle interfacce grafiche e delle applicazioni interattive.
  • Programmazione a flusso di dati

    Paradigma in cui il programma è modellato come una rete attraverso cui scorrono i dati, e le operazioni si attivano quando i loro ingressi sono disponibili. Rende naturale esprimere elaborazioni parallele e pipeline.
  • Programmazione a vincoli

    Paradigma in cui si dichiarano le relazioni e i vincoli che la soluzione deve soddisfare, lasciando a un risolutore il compito di trovarla. È usato per problemi di pianificazione, scheduling e ottimizzazione.
  • Programmazione array-oriented

    Approccio che tratta interi array come unità di calcolo, applicando operazioni all'intera struttura invece che elemento per elemento. È tipico di linguaggi per il calcolo numerico e l'analisi dei dati.
  • Programmazione asincrona

    Modello in cui le operazioni lunghe non bloccano il flusso, che prosegue e riceve il risultato quando è pronto. Migliora reattività ed efficienza, al prezzo di una gestione più complessa del controllo.
  • Programmazione basata su classi

    Modello della programmazione a oggetti in cui gli oggetti sono istanze di classi che ne definiscono struttura e comportamento. È l'approccio più diffuso, adottato da linguaggi come Java, C++ e Python.
  • Programmazione basata su prototipi

    Variante della programmazione a oggetti in cui gli oggetti ereditano direttamente da altri oggetti, senza classi. È il modello alla base di JavaScript, dove il comportamento si condivide clonando ed estendendo prototipi.
  • Programmazione dichiarativa

    Paradigma in cui si specifica cosa si vuole ottenere piuttosto che come calcolarlo, lasciando al sistema il compito di determinare la procedura. Linguaggi di query e descrizioni di interfacce ne sono esempi, favorendo concisione e riduzione degli errori procedurali.
  • Programmazione funzionale reattiva (FRP)

    Paradigma che combina lo stile funzionale con la gestione di flussi di valori che cambiano nel tempo. Permette di descrivere in modo dichiarativo come l'interfaccia o il sistema reagiscono ai cambiamenti dei dati.
  • Programmazione generica

    Tecnica che scrive algoritmi e strutture dati indipendenti dal tipo specifico dei dati trattati, parametrizzandoli. Permette di riutilizzare lo stesso codice con tipi diversi mantenendo la sicurezza dei tipi.
  • Programmazione imperativa

    Paradigma in cui il programma è una sequenza di istruzioni che modificano esplicitamente lo stato tramite assegnamenti, cicli e condizioni. Descrive passo per passo come raggiungere il risultato, rispecchiando da vicino il modello di esecuzione della macchina.
  • Programmazione logica

    Paradigma dichiarativo in cui il programma è un insieme di fatti e regole e il calcolo consiste nel derivare conclusioni tramite inferenza logica. L'esecuzione avviene interrogando la base di conoscenza, come nel linguaggio Prolog, che cerca soluzioni compatibili con i vincoli.
  • Programmazione modulare

    Approccio che suddivide un programma in moduli distinti e indipendenti, ciascuno con una responsabilità precisa. Favorisce riuso, manutenzione e lavoro in parallelo, riducendo la complessità complessiva del sistema.
  • Programmazione orientata agli aspetti

    Tecnica che isola le funzionalità trasversali, come logging o sicurezza, in moduli separati detti aspetti. Evita di disperdere lo stesso codice in tutto il programma, migliorando ordine e manutenibilità.
  • Programmazione orientata ai dati

    Approccio che progetta il software attorno all'organizzazione e alla trasformazione efficiente dei dati in memoria. È usato dove le prestazioni contano, come nei motori di gioco, sfruttando meglio la cache del processore.
  • Programmazione orientata al dominio

    Approccio che modella il software attorno ai concetti e al linguaggio del dominio applicativo. Avvicina il codice al modo di ragionare degli esperti del settore, riducendo la distanza tra requisiti e implementazione.
  • Programmazione parallela

    Approccio che scompone un calcolo in parti eseguite simultaneamente su più unità di elaborazione. Punta a ridurre i tempi sfruttando processori multicore o sistemi distribuiti, richiedendo attenzione alla sincronizzazione.
  • Programmazione procedurale

    Sottoinsieme del paradigma imperativo che struttura il codice in procedure o funzioni richiamabili, favorendo riuso e modularità. Organizza il flusso attorno a chiamate a subroutine che operano su dati passati come parametri, migliorando la leggibilità rispetto al codice monolitico.
  • Programmazione reattiva

    Paradigma incentrato sui flussi di dati e sulla propagazione automatica dei cambiamenti: quando una sorgente cambia, i valori che ne dipendono si aggiornano di conseguenza. È adatto a interfacce e sistemi orientati agli eventi, dove lo stato evolve nel tempo in modo asincrono.
  • Programmazione simbolica

    Approccio che manipola simboli ed espressioni anziché soli valori numerici, trattando il codice stesso come dato. È tipico dei linguaggi della famiglia Lisp e di applicazioni di calcolo formale e intelligenza artificiale.
  • Programmazione sincrona

    Modello in cui le operazioni vengono eseguite in sequenza e ciascuna attende il completamento della precedente. È semplice da seguire, ma un'operazione lenta blocca tutte quelle successive.
  • Programmazione stack-oriented

    Paradigma in cui le operazioni agiscono su una pila implicita di valori, senza nominare variabili intermedie. È il modello di linguaggi come Forth e del bytecode di molte macchine virtuali.
  • Programmazione strutturata

    Paradigma che organizza il codice con costrutti chiari come sequenze, selezioni e cicli, evitando i salti incondizionati. Rende i programmi più leggibili e manutenibili ed è alla base della programmazione moderna.
Preferenze cookie

Gestisci i cookie usati su Glossario Italiano. Puoi modificare le preferenze in qualsiasi momento dal link "Gestisci preferenze" in fondo a ogni pagina.

  • Necessari
    Login, sicurezza (CSRF), preferenze cookie. Sempre attivi.
    Sempre on
  • Statistici
    Misurano in forma aggregata come viene usato il sito. Nessun profilo personale.
  • Marketing
    Cookie di reti pubblicitarie esterne, se attivati in futuro. Oggi GLS non usa script di terze parti e i nostri sponsor sono editoriali, non profilano.