Logo dell'Università di Catania: Siciliae Studium Generale 1434 Logo DMI, Fondamenti di informatica
matite e gomma
Loghi istituzionali: Siciliae Studium Generale 1434, Università di Catania, Facoltà di Scienze Matematiche, Fisiche, Naturali, Insegnamento di Fondamenti di Informatica

Linguaggi di programmazione e paradigmi 

Lezione 11 di Fondamenti di informatica

Docente: Giuseppe Scollo

Università di Catania
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica, I livello, AA 2009-10

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0 Validazione XHTML 1.0 Validazione CSS 3

Indice

  1. Linguaggi di programmazione e paradigmi
  2. linguaggi di prima generazione
  3. linguaggi di seconda generazione
  4. linguaggi di terza generazione
  5. paradigmi di programmazione
  6. paradigma imperativo/procedurale
  7. programmazione ad oggetti
  8. programmazione dichiarativa
  9. temi per ulteriori approfondimenti

linguaggi di prima generazione

una storia di progressiva astrazione dalla macchina

linguaggi assembler :

linguaggi di seconda generazione

programma assembler :

linguaggi macro-assembler :

espansione delle macro-istruzioni: sostituzione testuale

programma macro-assembler :

limite di queste prime due generazioni di linguaggi:

linguaggi di terza generazione

linguaggi di programmazione di alto livello, obiettivi:

ampia diffusione trovano i primi linguaggi di terza generazione (anni '50), dotati di costrutti sofisticati:

di notevole rilievo storico, sebbene trovi minor diffusione, è il coevo apparire del linguaggio LISP:

paradigmi di programmazione

negli anni '50 e '60 la programmazione imperativa, ispirata dall'architettura Von Neumann, rimane il paradigma dominante

a partire dagli anni '70 emergono altri paradigmi di programmazione:

eccone uno sviluppo temporale approssimativo, con i linguaggi più significativi:

paradigma imperativo/procedurale

le primitive dei linguaggi imperativi esprimono comandi all'esecutore

costrutti caratteristici:

le istruzioni di "salto" vengono progressivamente abbandonate, secondo i canoni stilistici della programmazione strutturata

astrazione procedurale invece di macroistruzioni:

  • parametri formali nella definizione della procedura
  • parametri attuali nella invocazione della procedura

passaggio dei parametri:

  • per valore
  • per riferimento

trasferimento del controllo nell'esecuzione di una procedura

programmazione ad oggetti

estende la programmazione procedurale con i concetti di

nasce nell'ambito dei linguaggi di simulazione: Simula 67

ben si presta alla rappresentazione della concorrenza

si sviluppa negli anni '80 come paradigma di progettazione del software

linguaggi più diffusi: Smalltalk, C++, Eiffel, Java

anni '90: si afferma quale paradigma dominante nella produzione industriale di software, standardizzazione:

programmazione dichiarativa

idea guida: programma = definizione costruttiva del problema

due principali paradigmi dichiarativi:

temi per ulteriori approfondimenti

  1. Programmazione Web
    La diffusione di applicazioni e servizi in rete ha promosso lo sviluppo di linguaggi interpretati, o di scripting, quali ad es. Javascript, per la programmazione di siti Web dinamici. Molte risorse sono reperibili al sito http://www.javascript.it
  2. Programmazione dichiarativa
    Ecco un elenco di siti su alcuni linguaggi di programmazione dichiarativa:
  3. Ingegneria del software
    Nello sviluppo di complessi sistemi software, programmare non è tutto. L'ingegneria del software colloca l'attività di programmazione nel più ampio contesto della pianificazione, progetto, realizzazione, collaudo e manutenzione di prodotti software. Il tema è introdotto nella sez. 8.8 del testo (Schneider & Gersting, 2007), un buon punto di partenza per approfondimenti.