Evoluzione dei Linguaggi di Specifica e Programmazione

26
0 Ugo Montanari - Dipartimento di Informatica, Università di Pisa Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione Ugo Montanari Dipartimento di Informatica, Università di Pisa

Transcript of Evoluzione dei Linguaggi di Specifica e Programmazione

Page 1: Evoluzione dei Linguaggi di Specifica e Programmazione

0

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Ugo MontanariDipartimento di Informatica, Università di Pisa

Page 2: Evoluzione dei Linguaggi di Specifica e Programmazione

1

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Roadmap

• Perchè i linguaggi?• Che cosa sono i linguaggi?• Esempio: i numeri binari• Modelli di calcolo• Implementazione• Sfide del mondo globale• Conclusioni

Page 3: Evoluzione dei Linguaggi di Specifica e Programmazione

2

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Roadmap

• Perchè i linguaggi?• Che cosa sono i linguaggi?• Esempio: i numeri binari• Modelli di calcolo• Implementazione• Sfide del mondo globale• Conclusioni

Page 4: Evoluzione dei Linguaggi di Specifica e Programmazione

3

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Perchè i Linguaggi?

• Inizialmente linguaggio macchina– Separazione tra parte analogica e parte digitale del computer– È un interprete universale: può eseguire tutti i programmi

• Oggi migliaia di linguaggi con obiettivi assai diversi– Linguaggi di programmazione

• Procedurali, object-oriented, funzionali, logici• Piu’ usati: C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell,

SQL, Visual Basic– Linguaggi di specifica– Markup (ad es. HyperText Markup Language: HTML, Extensible

Markup Language: XML)– Query languages: SQL per database relazionali, DATALOG

deduttivi

Page 5: Evoluzione dei Linguaggi di Specifica e Programmazione

4

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Roadmap

• Perchè i linguaggi?• Che cosa sono i linguaggi?• Esempio: i numeri binari• Modelli di calcolo• Implementazione• Sfide del mondo globale• Conclusioni

Page 6: Evoluzione dei Linguaggi di Specifica e Programmazione

5

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Cosa è un Linguaggio?• Definisce una classe di programmi (sentenze, frasi)

programs

Page 7: Evoluzione dei Linguaggi di Specifica e Programmazione

6

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Cosa è un Linguaggio?• Definisce una classe di programmi (sentenze, frasi)

• Definisce una classe di modelli: dominio semantico

programs meanings

Page 8: Evoluzione dei Linguaggi di Specifica e Programmazione

7

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Cosa è un Linguaggio?• Associa un modello ad ogni programma: interpretazione semantica

programs meanings

Page 9: Evoluzione dei Linguaggi di Specifica e Programmazione

8

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Cosa è un Linguaggio?• Sintassi: programmi definiti mediante una grammatica

– Analisi sintattica: struttura gerarchica di sottoprogrammi

programs meanings

Page 10: Evoluzione dei Linguaggi di Specifica e Programmazione

9

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Cosa è un Linguaggio?• Semantica denotazionale

– Semantica di un programma in termini della semantica dei sottoprogrammi

programs meanings

Page 11: Evoluzione dei Linguaggi di Specifica e Programmazione

10

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Cosa è un Linguaggio?• Programmi equivalenti: hanno la stessa semantica

programs meanings

Page 12: Evoluzione dei Linguaggi di Specifica e Programmazione

11

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Cosa è un Linguaggio?

programs meanings

• Composizionalità della semantica: se rimpiazziamo un sottoprogramma con un sottoprogramma equivalente, la semantica del programma non cambia

Page 13: Evoluzione dei Linguaggi di Specifica e Programmazione

12

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Roadmap

• Perchè i linguaggi?• Che cosa sono i linguaggi?• Esempio: i numeri binari• Modelli di calcolo• Implementazione• Sfide del mondo globale• Conclusioni

Page 14: Evoluzione dei Linguaggi di Specifica e Programmazione

13

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Un Esempio: i Numeri Binari• Programmi: le sequenze di cifre binarie

es. 001001

• Dominio semantico: i numeri naturali (astratti)

0, 1, 2, 3, …

• Interpretazione semantica:

es. [001001] = 9

• Sintassi:

b::= “” | b & “0” | b & “1”

Page 15: Evoluzione dei Linguaggi di Specifica e Programmazione

14

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

• Struttura gerarchica:

• 001001 = (((((“”&“0”)&“0”)&“1”)&“0”)&“0”)&“1”

• Semantica denotazionale:

• [“”]=0 [b&“0”]=2[b] [b&“1”]=2[b]+1

• Esempio

• [001001] = 2(2(2(2(2(0)+0)+1)+0)+0)+1 = 2(2(1+0)+0)+1 = 9

• Programmi equivalenti:

• [001001] = [01001] = [1001] = 9

• Composizionalità:

• [001001]=[1001] ==> [001001&1101]= [1001&1101]

Un Esempio: i Numeri Binari, II

Page 16: Evoluzione dei Linguaggi di Specifica e Programmazione

15

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Roadmap

• Perchè i linguaggi?• Che cosa sono i linguaggi?• Esempio: i numeri binari• Modelli di calcolo• Implementazione• Sfide del mondo globale• Conclusioni

Page 17: Evoluzione dei Linguaggi di Specifica e Programmazione

16

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Modelli di Calcolo• Macchina astratta al giusto livello• Punto di partenza per:

– semantica formale– metodi di verifica e validazione di programmi– progetto di linguaggi e implementazioni standard

• Modelli procedurali, funzionali, logici, concorrenti, nondeterministici, distribuiti

Page 18: Evoluzione dei Linguaggi di Specifica e Programmazione

17

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Calcoli di Processo

Structural Operational Semantics (SOS)della composizione parallela per il Calculus of Concurrent Processes (CCS)di Robin Milner (~1980)

Page 19: Evoluzione dei Linguaggi di Specifica e Programmazione

18

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Modelli di Calcolo• Calcoli di processo: modelli e linguaggi di specifica• Model checking a stati finiti per verifica di hardware

e protocolli• Turing award 2008 a Clark, Emerson e Sifakis

Page 20: Evoluzione dei Linguaggi di Specifica e Programmazione

19

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Roadmap

• Perchè i linguaggi?• Che cosa sono i linguaggi?• Esempio: i numeri binari• Modelli di calcolo• Implementazione• Sfide del mondo globale• Conclusioni

Page 21: Evoluzione dei Linguaggi di Specifica e Programmazione

20

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Implementazione• Compilazione vs. interpretazione• Type checking• Moduli, librerie, configurazione, riconfigurazione• Ciclo di vita del software• Interoperabilità al livello de:

– Linguaggio (es. JAVA)– Sistema operativo (es. .NET)

• Deployment a run time• Parte della informazione di progetto disponibile a

run time

Page 22: Evoluzione dei Linguaggi di Specifica e Programmazione

21

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Roadmap

• Perchè i linguaggi?• Che cosa sono i linguaggi?• Esempio: i numeri binari• Modelli di calcolo• Implementazione• Sfide del mondo globale• Conclusioni

Page 23: Evoluzione dei Linguaggi di Specifica e Programmazione

22

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Sfide del Mondo Globale• Sistemi distribuiti su larga scala

– Global Computing (GC): il web come calcolatore globale– Open endness– Eterogeneity

• Transazioni, negoziazioni, decisioni distribuite (commits)– Causalità, concorrenza, distribuzione

• Costrutti linguistici e modelli formali– Coordinamento, orchestrazione, coreografia

• Qualità del servizio e service level agreements

Page 24: Evoluzione dei Linguaggi di Specifica e Programmazione

23

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Sfide del Mondo Globale, II• Future internet: dovunque, sempre, per ogni dato, per ogni

servizio• Supporto a comunità virtuali • Supporto ad aziende

– B2B zero time– Supporto alle decisioni– Intra, inter, distretti

• Accesso a informazione locale/globale– Security, trust– Information retrieval di seconda generazione

• Modelli stocastici– Dei servizi– Dello sviluppo del web

Page 25: Evoluzione dei Linguaggi di Specifica e Programmazione

24

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Roadmap

• Perchè i linguaggi?• Che cosa sono i linguaggi?• Esempio: i numeri binari• Modelli di calcolo• Implementazione• Sfide del mondo globale• Conclusioni

Page 26: Evoluzione dei Linguaggi di Specifica e Programmazione

25

Ugo Montanari - Dipartimento di Informatica, Università di Pisa

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Conclusioni• Sviluppo di nuovi linguaggi limitato dalla messa a punto di

modelli di calcolo adeguati• Sempre nuovi problemi proposti dallo sviluppo tecnologico e

sociale• Studio dei modelli di calcolo come scienza sperimentale• Verifica di sistemi critici molto problematica• Possibilita’ di disastri di grandi dimensioni• Attackers di nuova generazione