evoluzione dei linguaggi di specifica e programmazione
Post on 03-Feb-2022
3 Views
Preview:
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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”
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
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
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
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)
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
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
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
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
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
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
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
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
top related