1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da...

24
1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso didattico. Essi contengono materiale originale di proprietà dell'Università degli Studi di Milano e/o figure di proprietà di altri autori, società e organizzazioni di cui e' riportato il riferimento. Tutto o parte del materiale può essere fotocopiato per uso personale o didattico ma non può essere distribuito per uso commerciale. Qualunque altro uso richiede una specifica autorizzazione da parte dell'Università degli Studi di Milano e degli altri autori coinvolti.

Transcript of 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da...

Page 1: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

1

FCD

Fondamenti di Comunicazione Digitale

P.MUSSIO

G.VALLE

Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso didattico. Essi contengono materiale originale di proprietà dell'Università degli Studi di Milano e/o figure di proprietà di altri autori, società e organizzazioni di cui e' riportato il riferimento. Tutto o parte del materiale può essere fotocopiato per uso personale o didattico ma non può essere distribuito per uso commerciale. Qualunque altro uso richiede una specifica autorizzazione da parte dell'Università degli

Studi di Milano e degli altri autori coinvolti.

Page 2: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

2

Umano Calcolatore

Nel Contesto

Processo di Sviluppo

• Una discussione sul concetto di metalinguaggio e della sua utilità per il comunicatore digitale

Corso Fondamenti di Comunicazione Digitale

Parte prima: –Il modello adottato nel corso di processo di comunicazione digitale

Page 3: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

3

Metalinguaggio

Metá ‘sopra ‘, ‘oltre ’+ linguaggioUn linguaggio che ha per oggetto un altro linguaggio

Usato in informatica per specificare in forma finita le regole con cui si definisce un linguaggio di

programmazione

Page 4: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

4

Linguaggio di programmazione

Due definizioni informali:

• Un po’ più rigorosa: l’insieme dei possibili programmi costruiti a partire da un vocabolario di base (insieme finito di simboli)

• più corrente: una descrizione formale per descrivere algoritmi eseguibile da un calcolatore

Un linguaggio di programmazione (def,1) è definito specificando sintassi e la sua semantica

Page 5: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

5

Sintassi e semantica di un linguaggio di programmazione

Sintassi un insieme di regole formali che specificano come si compone un programma a partire da lettere, cifre e altri segni (parentesi, punti etc.)

Semantica un insieme di regole formali che specificano il significato di ogni programma sintatticamente valido scritto in quel linguaggioNoi: approccio operazionale e informale alla semantica: operazionale: specifichiamo il comportamento di un calcolatore astratto che esegue il programma scritto nel linguaggio.

Informale: non descriveremo la semantica in modo formale

N.B.: astratto non virtuale

Page 6: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

6

Un metalinguaggio per la definizione di sintassi

BNF: Bakus Naur Form (anni 60):una notazione per rendere precise le specifiche che allora si davano in linguaggio naturale

Una regola in BNF: <operator> +- / *

I simboli < > e operator sono simboli del metalinguaggio (BNF) chiamati anche simboli non terminali

I simboli + * / - sono simboli linguaggio che sto definendo chiamati anche simboli terminali.

I simboli terminali non compaiono mai alla sinistra di

Page 7: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

7

Un esempio di grammatica in BNF <expression> <identifier> (<expression> ) <expression> <operator> <expression>

<operator> +- / *

<identifier> <letter> <numeral > <identifier> <letter> <identifier>

<numeral >

<letter> a b c …….. z

<numeral> 0 1 2 ……. 9

Questa è una frase complessa (grammatica) nel metalinguaggio BNF che specifica l’insieme (infinito) delle espressioni aritmetiche di un linguaggio di programmazione realistico anche se ipotetico

I simboli terminali sono: +,-,/,*,a,b, c,….,z, 0,1, 2,…,9

<expression> è il simbolo di partenza (start symbol)

Page 8: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

8

Il linguaggio <expression> <identifier> (<expression> ) <expression> <operator> <expression>

<operator> +- / x

<identifier> <letter> <numeral > <identifier> <letter> <identifier> <numeral >

<letter> a b c …….. z

<numeral> 0 1 2 ……. 9

a12+b*a3 e (a12+b)*a3 sono frasi del linguaggio delle espressioni perché posso costruirle seguendo le regole della grammatica(a12+b*a3 no perché non si può costruire secondo le regole

Il linguaggio delle espressioni aritmetiche è l’insieme delle stringhe di simboli terminali che possono essere generati secondo le regole della grammatica a partire dallo start symbol.

Page 9: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

9

Le regole della BNF <expression> <identifier> (<expression> ) <expression> <operator> <expression>

• I non terminali che appaiono alla destra di in una regola debbono apparire a sinistra in qualche regola

• Una grammatica consiste di un insieme di regole in cui ogni non

terminale è definito (appare a sinistra di )• I simboli terminali debbono essere simboli validi del linguaggio• Un unico simbolo non terminale è designato (dal progettista) come

simbolo di partenza

Page 10: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

10

Il significato dei metasimboli

sta per “è definito come” sta per “oppure” e serve a permettere definizioni alternative di uo stesso non terminale

<expression> <identifier> <expression> <operator> <expression> questa regola prescrive che un’espressione è costituita da un <identifier> oppure da una <expression> seguita da un <operator> seguita da un’altra <expression>

Questa è una definizione ricorsiva poiché <expression> appare sia a destra che a sinistra di ‘ ‘ : <expression> è definito per mezzo di <expression>

Page 11: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

11

Come si usa una grammaticaSi usa per generare stringhe di simboli terminali che appartengono al linguaggio definito.

<expression> <expression> <operator> <expression>

<identifier> <operator> <expression>

<identifier> <operator> <identifier>

<letter> <operator> <identifier>

<letter> <operator> <numeral>

b <operator> <numeral>

b <operator> 2

b / 2 (stringa valida nel linguaggio delle espressioni)

1. Si parte dal simbolo iniziale e si applica una delle definizioni alternative (scelta arbitraria) e.g. <expression> <expression> <operator><expression>

2. Si prosegue sostituendo uno dei non terminali (di nuovo scelto arbitrariamente) (e. g applico <expression> <identifier> al primo <expression>

3. ri-applico <expression> <identifier> al secondo <expression>

4. Applico <identifier> <letter> 5. Sostituisco nuovamente il non terminale

<identifier> (scelto arbitrariamente, e.g. <identifier> <numeral>)

6. Applico (in tre passi) <letter> b, <numeral> 2 e <operator> / e ottengo b/2 che è una stringa valida nel linguaggio delle espressioni

Page 12: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

12

Come si usa una grammatica. <expression> <expression> <operator> <expression>

<identifier> <operator> <expression>

<identifier> <operator> <identifier>

<letter> <operator> <identifier>

<letter> <operator> <numeral>

b <operator> <numeral>

b <operator> 2

b / 2 (stringa valida nel linguaggio delle espressioni)

Il ragionamento è espresso in metalinguagio

Tutte queste sono stringhe del metalinguaggio costruite su simboli non erminali e terminali.

.Le stringhe del metalinguggio

possono perciò contenere stringhe del linguaggio

Page 13: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

13

Cosa significa la stringa ottenuta?

Dipende dalle regole di assegnamento che stabilisco

Se definisco un calcolatore tale che: ‘a ‘ indica una precisa posizione nella memoria del calcolatore‘/’ indica l’operazione di somma eseguibile dal calcolatore ‘2’ indica un posizione di memoria del calcolatore il cui contenuto è l’intero 2 il calcolatore interpreta la stringa b/2 come‘somma il contenuto della cella ‘a’ al contenuto della cella ‘2’ e eseguendo il comando ottiene <contenuto di ‘a’ + 2>

Page 14: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

14

Perché il concetto di metalinguaggio è importante per il CD ?

Perché spesso il CD si trova a parlare in linguaggio naturale di problemi e delle loro soluzioni (ad esempio con i clienti o gli utenti del sistema). In queste situazioni, crea messaggi che hanno come contenuto il linguaggio stesso. (ad esempio: cosa intende esattamente con questa parola? è una frase di metalinguaggio)Questa situazione è pericolosa perché può dar luogo a paradossi.

Page 15: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

15

Un esempio

Questa frase , scritta sulla slide 11 nl rettangolo, non è vera

Se, per semplicità rimpiazziamo la frase con il simbolo ‘S’, otteniamo:(1) - ‘S’ è vera se e solo se la frase nel rettangolo sulla slide 11 non è vera

In più- in base al significato assegnato – stabilire empiricamente che

(2) - ‘S’ è identica alla sentenza alla frase nel rettangolo sulla slide 11

Identico: che possono sostituirsi l’un l’altro preservando la verità

In (1) sostituisco ‘la frase nel rettangolo sulla slide 11 ‘ con ‘S’ e ottengo (3) ‘S’ è vera se e solo se ‘S’ è non vera La (3) è ottenuta con un metodo logicamente inoppugnabile , rappresenta un

paradosso

Page 16: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

16

Una analisi del paradossoQuesta frase , scritta sulla slide 11 nl rettangolo, non è vera (3) ‘S’ è vera se e solo se ‘S’ è non vera

Tarsky analizza le premesse da cui nasce il paradosso :I- abbiamo assunto che il linguaggio contenga le espressioni,ma anche i nomi con cui le indichiamo e il predicato ‘vero ’. Assumiamo anche le espressioni in cui il predicato è usato appartengano al linguaggio (linguaggio semanticamente chiuso)II- le ordinarie regole della logica sono valide nel linguaggioIII- le premesse empiriche tipo (2) possono esser stabilite nel linguaggio e trae le conclusioni

non ritiene discutibile la III, dificile rinunciare alla II . Rimane il problema di aggirare la I. non usando un linguaggio semanticamente chiuso.

. Argomenti discussi, ma c’è accordo sul ritenere che le espressioni che usiamo per formulare affermazioni intorno agli elementi di un

certo universo non possono essere confuse con quelle usate per formulare espressioni intorno alle espressioni del primo tipo.

Page 17: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

17

Una soluzioneQuesta frase , scritta sulla slide 11 nl rettangolo, non è vera (3) ‘S’ è vera se e solo se ‘S’ è non vera

Dividere il linguaggio in due linguaggi:Il linguaggio oggetto: che ci permette di esprimerci ri spetto ai fenomeni di un certo universo.

Il metalinguaggio: il linguaggio in cui possiamo formulare affermazioni sule espressioni oggetto.

Il metalinguaggio deve soddisfare.i- deve permettere di esprimere tutte le espressioni del linguaggio oggettoii- deve contenere i concetti semantici relativi al linguaggio oggetto, non esprimibili nel linguaggio oggetto

In informatica si tende a separare nettamente i due linguaggi, usando notazioni diverse per i simboli terminali e non terminali

Page 18: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

18

Un esempio di quando un CD usa linguaggi e metalinguaggi

Un CD progetta ambienti interattivi in cui operatori svolgono diverse attività e ambienti interattivi in cui gli operatori decidono come svolgere quelle attività, Questa seconda attività è un’attività metalinguistica.

Nel primo filmato mostra un responsabile di officina che usa un ambiente interattivo per gestire un robot industriale

Nel secondo filmato lo stesso responsabile progetta l’interfaccia per un nuovo addetto (liberalità della ETA consulting –Brescia , tesi di Denise Salvi, brescia 2002)

Page 19: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

19

Officina applicativa: linguaggio

Page 20: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

20

Nel secondo filmato si usa un ambiente interattivo per costruire o adattare un ambiente interattivo che permette di usare e controllare un robot industriale.In questo caso il responsabile di officina progetta o adatta l’ambiente interattivo usando un metalinguaggio visuale (User Interface Development Environment) (liberalità della ETA consulting –Brescia , tesi di Denise Salvi, brescia 2002)

Un esempio di quando un CD usa linguaggi e metalinguaggi

Page 21: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

21

Officina di sistema: metalinguaggio

Page 22: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

22

Un esempio di grammatica per XML in una notazione più sintetica

<document> <prolog> <element> <Misc>*<prolog> <XMLDecl>? <Misc>* (<doctypedecl> <Misc>*)?<XMLDecl> ‘<?xml<?xml’ <VersionInfo> <EncodingDecl>? <SDDecl>? <S>? ‘?>?>’…<element> <EmptyElemTag> | <StartTag> <content> <EndTag> <EmptyElemTag> ‘<<’ <Name> (<S> <Attribute>)* <S>? ‘/>’ <StartTag> ’<<’ <Name> (<S> <Attribute>)* <S>? ‘>>’<content> (<element>|<CharData>|<CDSect>|<Comment> | <Reference>|<PI>)*<Attribute> <Name> <S>? ‘=’ <S>? <AttValue><EndTag> ‘</</’ <Name> <S>? ‘>>’…<Name> (<Letter> | ‘__’ | ‘::’) (<NameChar>)*<NameChar> <Letter> | <Digit> | ‘..’ | ‘ --’ | ‘__’ | ‘::’ |<CombiningChar>|<Extender>…<Letter> aa bb c c … zz<Digit> 0 0 11 22 …99<S> (#x20#x20 | #x9 #x9 | #xD #xD | #xA#xA)+ spazi, carriage returns, line feeds, or tabs

Page 23: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

23

Applicare la grammatica (1)• <document><prolog><element> <XMLDecl><Misc><element> • <?xml<VersionInfo><EncodingDecl><SDDecl><S>?><Misc><element>

… • <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?

><Misc><element>• <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?

><S><element>• <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?>• <element>• <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?>• <StartTag><content><EndTag> • <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?> • <<Name>><content><EndTag> • <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?>• <<Letter><NameChar>><content><EndTag> • <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?>• <e<NameChar>><content> <EndTag> • <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?>• <e<Letter>><content> <EndTag> • <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?>• <e1><content> <EndTag> • <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?>• <el><content> <EndTag> • <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?>• <el><CDSect><EndTag> • <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?>• <el><CDStart><Cdata><CDEnd><EndTag>

Dal simbolo di partenza ad una stringa in XML

Page 24: 1 FCD Fondamenti di Comunicazione Digitale P.MUSSIO G.VALLE Questi lucidi sono stati preparati da Piero Mussio, Università degli Studi di Milano, per uso.

24

Applicare la grammatica (2)

<?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?> <el><CDStart><Cdata><CDEnd><EndTag> <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?>

<el><![CDATA[<Cdata><CDEnd><EndTag> <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?> <el><![CDATA[<Char><CDEnd><EndTag> <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?> <el><![CDATA[Content<CDEnd><EndTag> <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?> <el><![CDATA[Content]]<EndTag> <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?> <el><![CDATA[Content]]</<Name><S>> <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?> <el><![CDATA[Content]]</el<S>> <?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?> <el><![CDATA[Content]]</el >

Stringa valida nel linguaggio XML