Evoluzione dei Linguaggi di Specifica e Programmazione
Transcript of Evoluzione dei Linguaggi di Specifica e Programmazione
![Page 1: Evoluzione dei Linguaggi di Specifica e Programmazione](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/1.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/2.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/3.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/4.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/5.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/6.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/7.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/8.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/9.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/10.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/11.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/12.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/13.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/14.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/15.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/16.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/17.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/18.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/19.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/20.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/21.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/22.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/23.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/24.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/25.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022020704/61fb55422e268c58cd5ced64/html5/thumbnails/26.jpg)
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