Volevo sapere che cosa si intende per linguaggi procedurali, quali sono e quali sono le maggiori differenze con gli altri tipi di linguaggi. Potreste anche consigliarmi siti che trattano questo argomento?

I linguaggi di programmazione di tipo procedurale sono quelli in cui
le istruzioni per il computer vengono espresse indicando la sequenza di operazioni che devono essere svolte passo per passo.

Di fatto la stragrande maggioranza dei linguaggi comunemente
usati per la programmazione sono di tipo procedurale; fra i più noti:
C, Java, FORTRAN, perl, Python, ecc., ecc..

Fra i linguagi di tipo diverso possiamo citare quelli per la
programmazione funzionale in cui le azioni da compiere vengono
specificate sotto forma di espressioni o funzioni. Per utilizzare un
immagine del linguaggio comune si potrebbe dire che i linguaggi procedurali
specificano “come” il programma deve funzionare, i linguaggi funzionali
specificano “che cosa” il programma deve fare. Alcuni esempi di
linguaggi funzionali sono Haskell, Scheme, SML;
altri linguaggi (ad esempio Python) contengono alcuni construtti che
consentono uno stile di programmazione di tipo funzionale.
Una spiegazione più dettagliata sarebbe di lunghezza eccessiva per
queste pagine, altre informazioni sulla programmazione funzionale
possono essere trovate in rete:


  • Imparare a Programmare
    di A. Gauld,
    una introduzione alla programmazione in linguaggio Python che contiene
    un capitolo sulla programmazione funzionale (traduzione italiana).
  • www.haskell.org, Il sito ufficiale
    del linguaggio Haskell.
  • Esiste un gruppo di discussione sull’argomento: comp.lang.functional,
    che cura anche una FAQ che
    contiene una gran quanità di ulteriori riferimenti.

Altri linguaggi di tipo non procedurale possono essere considerati i sistemi
di programmazione grafica in cui l’utilizzatore specifica il “programma”
assemblando icone che rappresentano blocchi funzionali che vengono poi
collegati con linee
che rappresentano scambi di dati.
Esempi di ambienti di questo tipo sono Khoros, LabView, Simulink, LogoBlocks ed altri.
Per approfondimenti si consiglia:

  • Khoros, il sito ufficiale. Khoros
    è un prodotto commerciale della Khoral.
  • Una
    introduzione a LabView
    ed un
    gruppo di interesse
    italiano. LabView è un prodotto commerciale
    della National Instruments.
  • Simulink.
    È un prodotto commerciale della MathWorks.
  • LogoBlocks
    è un linguaggio di programmazione grafica sviluppato al MIT per
    programmare applicazioni robotiche.