Docenti:
Marina Madonia &
Giuseppe Scollo
Università di Catania
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Laurea in Informatica, I livello, AA 2008-09
una storia di progressiva astrazione dalla macchina
linguaggi assembler :
156C | LOAD | R5 | Prezzo |
166D | LOAD | R6 | CostoSpedizione |
5056 | ADDI | R0 | R5 R6 |
306E | STORE | R0 | CostoTotale |
C000 | HALT |
programma assembler :
linguaggi macro-assembler :
espansione delle macro-istruzioni: sostituzione testuale
programma macro-assembler :
limite di queste prime due generazioni di linguaggi:
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:
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:
le primitive dei linguaggi imperativi esprimono comandi all'esecutore
costrutti caratteristici:
v := E
le istruzioni di "salto" vengono progressivamente abbandonate, secondo i canoni stilistici della programmazione strutturata
astrazione procedurale invece di macroistruzioni:
passaggio dei parametri:
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:
idea guida: programma =
definizione costruttiva del problema
due principali paradigmi dichiarativi:
λ
-calcolo
(A. Church, 1941),
LISP (J. McCarthy, 1958)