Evoluzione dei Linguaggi di Specifica e Programmazione

Post on 03-Feb-2022

4 views 0 download

Transcript of 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

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