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.
24
Embed
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.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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.
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
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
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
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
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
7
Un esempio di grammatica in BNF <expression> <identifier> (<expression> ) <expression> <operator> <expression>
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)
8
Il linguaggio <expression> <identifier> (<expression> ) <expression> <operator> <expression>
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.
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
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>
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
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
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>
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.
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
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.
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
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)
19
Officina applicativa: linguaggio
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
21
Officina di sistema: metalinguaggio
22
Un esempio di grammatica per XML in una notazione più sintetica