La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Fondamenti di Comunicazione Digitale

Presentazioni simili


Presentazione sul tema: "Fondamenti di Comunicazione Digitale"— Transcript della presentazione:

1 Fondamenti di Comunicazione Digitale
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 Corso Fondamenti di Comunicazione Digitale
Parte prima: Il modello adottato nel corso di processo di comunicazione digitale Una discussione sul concetto di metalinguaggio e della sua utilità per il comunicatore digitale Umano Calcolatore Nel Contesto Processo di Sviluppo

3 Metalinguaggio Metá ‘sopra ‘, ‘oltre ’+ linguaggio
Un 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
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 linguaggio Noi: 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> <operator> +- / * <identifier> <letter> <numeral >  <identifier> <letter>  <identifier> <numeral > <letter>  a b c  …….. z <numeral>  0  1 2 ……. 9 I simboli terminali sono: +,-,/,*,a,b, c,….,z, 0,1, 2,…,9 <expression> è il simbolo di partenza (start symbol) 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

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 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. 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

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 grammatica
Si 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) Si parte dal simbolo iniziale e si applica una delle definizioni alternative (scelta arbitraria) e.g. <expression> <expression> <operator><expression> Si prosegue sostituendo uno dei non terminali (di nuovo scelto arbitrariamente) (e. g applico <expression> <identifier> al primo <expression> ri-applico <expression> <identifier> al secondo <expression> Applico <identifier> <letter> Sostituisco nuovamente il non terminale <identifier> (scelto arbitrariamente, e.g. <identifier> <numeral>) 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: - ‘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 paradosso
Questa 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 linguaggio III- 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 soluzione Dividere il linguaggio in due linguaggi:
Questa 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 oggetto ii- 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 Un esempio di quando un CD usa linguaggi e metalinguaggi
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)

21 Officina di sistema: metalinguaggio

22 Un esempio di grammatica per XML in una notazione più sintetica
<document> <prolog> <element> <Misc>* <prolog> <XMLDecl>? <Misc>* (<doctypedecl> <Misc>*)? <XMLDecl>  ‘<?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>  a b c  … z <Digit>  0  1 2 …9 <S> (#x20 | #x9 | #xD | #xA) spazi, carriage returns, line feeds, or tabs

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> <StartTag><content><EndTag>  <<Name>><content><EndTag>  <<Letter><NameChar>><content><EndTag>  <e<NameChar>><content> <EndTag>  <e<Letter>><content> <EndTag>  <e1><content> <EndTag>  <el><content> <EndTag>  <el><CDSect><EndTag>  <el><CDStart><Cdata><CDEnd><EndTag>  Dal simbolo di partenza ad una stringa in XML

24 Applicare la grammatica (2)
<?xml version="1.0” encoding = “UTF-8” standalone = “yes” ?> <el><CDStart><Cdata><CDEnd><EndTag>  <el><![CDATA[<Cdata><CDEnd><EndTag>  <el><![CDATA[<Char><CDEnd><EndTag>  <el><![CDATA[Content<CDEnd><EndTag>  <el><![CDATA[Content]]<EndTag>  <el><![CDATA[Content]]</<Name><S>> <el><![CDATA[Content]]</el<S>> <el><![CDATA[Content]]</el > Stringa valida nel linguaggio XML


Scaricare ppt "Fondamenti di Comunicazione Digitale"

Presentazioni simili


Annunci Google