Oggetti sintattici. Semantica operazionale dei linguaggi di Programmazione. Oggetti sintattici. Funzioni di valutazione semantica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Oggetti sintattici. Semantica operazionale dei linguaggi di Programmazione. Oggetti sintattici. Funzioni di valutazione semantica"

Transcript

1 Oggetti sintattici Abbiamo più volte sottolineato il fatto che le stringhe di un linguaggio sono di base oggetti simbolici puri Non hanno un significato particolare associato, a parte quello di essere stringhe formate con certi simboli Siamo noi che diamo loro un significato a seconda del contesto in cui le usiamo Tale significato lo chiameremo semantica del linguaggio Possiamo assegnare infinite semantiche ad uno stesso linguaggio! Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P. Mancarella e F. Turini Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.3/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.1/51 Funzioni di valutazione semantica In un contesto informale il significato di una parola o di una frase può essere ambiguo Nel nostro ambito vogliamo la massima precisione Assegneremo la semantica in maniera formale Definiremo in maniera rigorosa delle funzioni che associano ad ogni stringa del linguaggio il relativo significato Il significato sarà un elemento di un certo dominio semantico Oggetti sintattici Nella prima parte del corso abbiamo visto alcuni strumenti per definire formalmente dei linguaggi Abbiamo visto come le regole di una grammatica libera dal contesto non ambigua diano una struttura ben precisa ad ogni stringa de linguaggio Tale struttura è ricorsiva se il linguaggio non è banale (finito) Tale struttura è completamente rappresentata dall albero di derivazione Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.4/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.2/51

2 Stringhe di cifre Formalmente ciò che lega una stringa di cifre decimali a un numero naturale è una funzione che associa ad ogni stringa un certo numero naturale Questa funzione è un esempio di funzione di valutazione semantica: lega oggetti sintattici a elementi di un certo dominio semantico Vediamo come può essere definita formalmente tale funzione Sappiamo che il sistema di numerazione in base dieci funziona in questo modo: La stringa 134 rappresenta il numero = Domini semantici Se gli oggetti sintattici sono definiti precisamente, altrettanto vogliamo per gli oggetti semantici Utilizzeremo come domini semantici gli oggetti matematici: Insiemi con relative operazioni: numeri naturali con +,,... Funzioni parziali o totali fra domini semantici Strutture: pile di funzioni, alberi, Le funzioni di valutazione semantica saranno definite in maniera formale Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.7/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.5/51 Formalizziamo Indichiamo con n,n,... elementi della categoria sintattica Num, cioè stringhe generate dalla grammatica Num ::= Num Cif Cif Cif ::= Indichiamo con n,n,... numeri naturali: IN = {0,1,2,3,4,5,...} Definiamo una funzione η:num IN che lega ad ogni stringa il numero naturale denotato Stringhe di cifre Facciamo il primo esempio di funzione di valutazione semantica Consideriamo gli elementi della categoria sintattica Num Sono stringhe formate da cifre decimali Qual è il loro significato? A noi risulta naturale pensare ai numeri naturali, perché questa è la semantica che quasi sempre viene assegnata loro Ma tali stringhe sono solo una possibile rappresentazione dei numeri naturali! Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.8/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.6/51

3 Altre rappresentazioni Definizione di η Basta associare a z il numero 0, ad u ul numero 1 e poi utilizzare il sistema binario di rappresentazione: zuzz rappresenta = 4 La funzione η può essere convenientemente definita in maniera ricorsiva utilizzando la struttura ricorsiva a sinistra suggerita dalla grammatica: η (z) = 0 η (u) = 1 η (xb) = (η (x) 2) + η (b) η(0) = 0 η(1) = 1... η(9) = 9 η(nc) = (η(n) 10) + η(c) Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.11/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.9/51 Applicazione di η Altre rappresentazioni η (zuzz) = (η (zuz) 2) + η (z) = (η (zuz) 2) +0 = (((η (zu) 2) + η (z)) 2) +0 = (((η (zu) 2) +0) 2) +0 = (((((η (z) 2) + η (u)) 2) +0) 2) +0 = (((((0 2) +1) 2) +0) 2) +0 = ((((0 +1) 2) +0) 2) +0 = (((1 2) +0) 2) +0 = ((2 +0) 2) +0 = (2 2) +0 = 4 +0 = 4 I numeri naturali possono avere un numero infinito di rappresentazioni sintattiche! Ad esempio possiamo utilizzare una notazione binaria in cui i simboli sono le lettere dell alfabeto {z,u} La grammatica che usiamo è: Binary ::= Bit Binary Bit Bit ::= z u Possiamo definire in maniera analoga alla precedente una funzione che associa a queste stringhe un numero naturale: η :Binary IN Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.12/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.10/51

4 Sintassi La risoluzione dell ambiguità della grammatica e la gestione delle regole di precedenza e di associatività rendono l albero di derivazione complesso In realtà basterebbe una rappresentazione più semplice per rappresentare la struttura della stringa Quello che faremo da adesso in poi è utilizzare un albero di derivazione semplificato chiamato albero sintattico L albero sintattico non è dettagliato come l albero di derivazione ed esprime solo ciò che serve ai fini della definizione della semantica Espressioni Definiamo formalmente l associazione fra espressioni aritmetiche e loro valore La definizione formale di questa funzione di valutazione semantica sarà il primo passo verso il nostro obiettivo finale Ci concentreremo attentamente su tutte le fasi di questo esempio Nel seguito infatti lo schema di definizione sarà sempre lo stesso Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.15/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.13/51 Albero sintattico Ad esempio l albero sintattico corrispondente all albero di derivazione della stringa introdotta prima è: Exp Exp + Exp 9 Exp * Exp 3 16 Sintassi Abbiamo già visto come si scrive una grammatica per le espressioni con operatori a cui è assegnata una precedenza e una regola di associatività Tali regole si riflettono sull albero di derivazione che rappresenta precisamente la struttura della stringa. Ad esempio : E E + T T T * F F F Num Num Num Num Cif Cif Cif Cif Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.16/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.14/51

5 Grammatiche semplici Alla luce di questa convenzione facciamo anche un altra operazione di semplificazione Non usiamo grammatiche complicate introdotte per gestire i problemi di ambiguità e precedenza/associatività Per specificare la sintassi ci basterà scrivere grammatiche semplici, anche ambigue Questo perché comunque i problemi di queste grammatiche sono risolti alla fonte: ci viene passato un albero sintattico Albero sintattico Nell albero sintattico sono indicati solo gli operandi e gli operatori La struttura dei sottoalberi esprime le regole di precedenza e associatività Tutto il resto è omesso Da un albero di derivazione è semplice ottenere il corrispondente albero sintattico Si può dire che l albero sintattico è una rappresentazione compatta dell albero di derivazione Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.19/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.17/51 Grammatica semplice Daremo semantica precisamente all albero sintattico, considerando solamente gli operandi, gli operatori e la struttura di questo Quindi per specificare la sintassi delle espressioni ci basterà utilizzare questa grammatica: Exp ::= Num (Exp) Exp Op Exp Op ::= + - * / % Chi ci fornisce gli alberi sintattici si sarà preoccupato di eliminare l ambiguità e di aver espresso nell albero stesso la struttura della stringa in accordo alla precedenza/associatività Convenzione Da ora in poi useremo solo alberi sintattici come oggetti sintattici Assumeremo che ai nostri sistemi di transizioni vengano sempre passati alberi sintattici ottenuti semplificando alberi di derivazione In questo modo semplifichiamo i sistemi di transizioni che si concentrano solo sul problema della definizione della semantica Chi fornisce gli alberi sintattici si occuperà dei problemi relativi alla scrittura della grammatica giusta, problemi prettamente sintattici Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.20/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.18/51

6 Metavariabili Utilizzeremo i simboli E,E,E 1,E 2,... per denotare alberi sintattici della categoria sintattica Exp In questo caso quindi la scrittura E Exp denota che E è un albero sintattico, non una stringa Ometteremo queste premesse nelle regole, poiché usiamo metavariabili Convenzione di scrittura Risulterà comodo, per la chiarezza dell esposizione, poter rappresentare un albero sintattico in maniera lineare, cioè senza disegnare l albero Per far questo aggiungeremo alle stringhe delle parentesi quadre che indicheranno la struttura dell albero... Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.23/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.21/51 Matching Per il matching bisogna tener conto della struttura: E+E fa match con 9 + [3 16] ponendo E = 9 ed E = [3 16] non fa match con E E poiché l albero 9 + [3 16] non ha al primo livello l operatore Un albero che fa match con E E potrebbe essere [([9 + 3])] 16 Si noti che le parentesi hanno al loro interno l albero 9 + 3, che è a tutti gli effetti un sottoalbero dell albero ([9 + 3]) Convenzioni di scrittura Ad esempio, per indicare l albero sintattico: Exp Exp + Exp 9 Exp * Exp 3 16 scriveremo la stringa 9 + [3 16] Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.24/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.22/51

7 Configurazioni Calcolo del valore Si noti come ad una configurazione contentente un oggetto sintattico (l albero sintattico) il sistema associa una configurazione terminale formata da un oggetto di un dominio semantico (un numero naturale) Questo sistema sarà la base con cui definiremo la funzione di valutazione semantica delle espressioni aritmetiche Dalla grammatica vediamo che per ora le espressioni hanno come operandi solo stringhe di Num Partiamo con la prima regola che tratta il caso base... Abbiamo tutti gli ingredienti per definire un sistema di transizioni che calcola il valore di una espressione Naturalmente sarà un sistema big-step che utilizza come base per la ricorsione la relazione di sottoalbero degli alberi sintattici Le regole saranno guidate dalla sintassi: ogni caso sintattico della grammatica semplificata avrà una regola semantica Nelle configurazioni non ci saranno stringhe, ma alberi sintattici Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.27/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.25/51 Configurazioni Una espressione il cui albero sintattico è formato solo da una stringa di cifre n, elemento della categoria sintattica Num, ha come valore il numero naturale denotato da n In questo caso supponiamo che il sistema sia in grado di ottenere il numero dalla rappresentazione, ad esempio usando la funzione η definita sopra La regola di exp per questo caso sintattico non ha premesse: Le configurazioni del sistema sono le seguenti Γ exp T exp = {E E Exp} {n n IN} = {n n IN} Come abbiamo visto in precedenza, poiché il sistema è definito nello stile big-step non abbiamo bisogno di configurazioni intermedie n exp n (exp n ) Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.28/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.26/51

8 E exp n E exp n E+E exp? Facciamo una chiamata ricorsiva anche sul sottoalbero destro E per ottenere il valore n Non ci resta che applicare l operatore semantico di somma tra numeri naturali per ottenere il valore dell espressione E+E? E+E exp? Vediamo la regola (exp + ) che gestisce il caso sintattico Exp +Exp La configurazione di input richiede che venga passato un albero sintattico in cui al primo livello ci sia l operatore + applicato a due sottoalberi E ed E Per calcolare il valore di tutta l espressione abbiamo bisogno del valore delle espressioni che sono nei sottoalberi... Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.31/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.29/51 E exp n E exp n m = n +n E+E exp m Chiamiamo m il valore della somma e poniamolo come configurazione di arrivo Facciamo ora una precisazione sugli operatori e sulla loro rappresentazione E exp n? E+E exp? Per calcolare il valore dell espressione rappresentata dal sottoalbero E applichiamo la ricorsione L ipotesi induttiva ci garantisce che il sistema è in grado di effettuare il calcolo sull albero E poiché questo è un albero più piccolo dell albero che si sta trattando Inoltre l ipotesi induttiva garantisce che se il calcolo viene effettuato allora il risultato, che chiamiamo n, è corretto Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.32/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.30/51

9 Operatori e loro rappresentazione E exp n E exp n m = n n E*E exp m Questa regola (exp ) si occupa del caso sintattico Exp Exp Essa opera allo stesso modo di (exp + ): fa due chiamate ricorsive e un calcolo In questo caso abbiamo distinto il simbolo dall operatore di prodotto fra numeri naturali vero e proprio, rappresentato con Anche per gli operatori, come per i numeri, bisogna distinguere tra rappresentazione sintattica e operatore vero e proprio Nella regola precedente abbiamo utilizzato il + sia come simbolo di alfabeto che come operatore binario fra numeri naturali Nell albero sintattico E +E il + è un mero simbolo, la semantica può assegnargli un qualsiasi significato Nell equazione m = n +n il + è il ben noto operatore di somma tra numeri naturali Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.35/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.33/51 Operatori e loro rappresentazione E exp n E exp n? E / E exp? Questa regola (exp div ) si occupa del caso sintattico Exp/Exp Come operatore useremo div, che fa la divisione intera fra numeri naturali: il risultato è un numero naturale e l operazione ha un resto Una volta che abbiamo ottenuto i valori delle espressioni dei sottalberi si presenta un problema Se il valore n è 0 l operatore div non è applicabile! Formalmente è buona regola usare due simboli diversi o degli accorgimenti tipografici per distinguerli In questo caso facciamo un eccezione a questa regola, ma per altri operatori faremo la distinzione Quando uno stesso simbolo, come in questo caso il +, viene usato per rappresentare diversi oggetti bisogna fare attenzione al suo uso In genere si capisce dal contesto il significato da attribuirgli di volta in volta Se questo non è vero allora conviene distinguere i simboli o specificare di volta in volta il significato Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.36/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.34/51

10 Configurazioni Bloccate Abbiamo visto che una configurazione γ di un sistema di transizioni si dice bloccata se non è terminale e se non esiste nessuna configurazione γ tale che γ γ Questo è proprio il caso di tutte le configurazioni che contengono alberi sintattici in cui in qualche sottoalbero c è una divisione per un espressione che ha valore 0 Es: 4/0, 3 + [53/0], 4 [25/[([2 2])]],... E exp n E exp n n 0 m = n div n E / E exp m Dobbiamo inserire nelle premesse una condizione logica che escluda questo caso, cioè n 0 A questo punto possiamo andare avanti e applicare l operatore div per ottenere il risultato m Ma cosa succede al sistema se il valore di n è proprio 0? Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.39/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.37/51 Configurazioni bloccate Configurazioni Bloccate Alla luce di questo fatto dobbiamo rivedere l ipotesi induttiva Quello che possiamo veramente assumere è che, dato un sottoalbero E dell albero che stiamo gestendo, la chiamata ricorsiva del sistema se non si blocca allora è in grado di restituire il valore associato alla espressione rappresentata dal sottoalbero Supponiamo di mettere il sistema nella configurazione 4/0 Che valore ci aspettiamo per questa espressione? Chiaramente non possiamo aspettarci nessun numero naturale se interpretiamo il simbolo / come la divisione intera! La regola che abbiamo scritto ha una premessa che esclude la sua applicabilità nei casi in cui il divisore sia 0 Non essendoci altre regole che gestiscono questo caso quello che abbiamo è che il sistema si blocca Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.40/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.38/51

11 Configurazioni bloccate E exp n E exp n? E-E exp? In questa regola (exp ) si presenta un altro problema: che succede se n è più grande di n? Tutto dipende dal dominio semantico che vogliamo utilizzare Se come dominio semantico usiamo l insieme IN allora in questi casi il sistema si deve bloccare Quindi in ogni regola in cui nelle premesse usiamo la ricorsione può succedere che il sistema si blocchi provocando, a sua volta, il blocco della regola in questione Ad esempio il sottoalbero 3/0 dell albero 2 [3/0] provocherà il blocco di tutta la configurazione 2 [3/0] gestita dalla regola (exp ) Anche la regola per %, che rappresenta l operatore che dà il resto della divisione intera, può provocare dei blocchi... Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.43/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.41/51 E exp n E exp n n n m = n n E exp n E exp n n 0 m = n mod n E-E exp m Se invece usassimo l insieme dei numeri interi allora potremmo trattare i numeri negativi Per semplicità prendiamo IN e facciamo bloccare il sistema Si noti che, come per +, anche al simbolo diamo un doppio significato E % E exp m In questa regola (exp mod ) trattiamo il caso sintattico Exp % Exp L operatore semantico è rappresentato con mod Anche in questo caso c è bisogno della premessa che esclude i casi in cui il divisore sia 0 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.44/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.42/51

12 (d1): Derivazione Vediamo la sottoderivazione (d1) attivata dalla derivazione principale: 15 / 2 exp { (exp div ), (exp n ): 15 exp 15, (exp n ): 2 exp 2, 2 0, 15 div 2 = 7 } 7 E exp n (E) exp n Questa regola (exp () ) semplicemente esprime il fatto che il valore di un espressione tra parentesi è uguale al valore dell espressione dentro la parentesi Si noti che la ricorsione è applicata correttamente poiché l albero E è un sottoalbero dell albero (E) Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.47/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.45/51 Derivazione ad albero E possibile esprimere una derivazione anche costruendo un albero in cui le sottoderivazioni sono sottoalberi: 2 2 (exp n) 3 3 (exp n) 8 8 ((exp n) [3 +8] = 3 +8 (exp + ) 13 = Si noti che l applicazione di regole senza premesse determina un nodo foglia (cioè senza figli) dell albero Nel seguito, tuttavia, continueremo ad utilizzare prevalentemente le sottoderivazioni (exp + ) Derivazione Facciamo un esempio di derivazione che usa le regole viste: / 2 exp { (exp ), (exp n ): 25 exp 25, (d1): 15 / 2 exp 7, 25 7, 25 7 = 18 } 18 E utilizzata una sottoderivazione (d1)... Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.48/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.46/51

13 Funzione di valutazione semantica Una funzione si dice totale se è definita per tutti gli elementi del suo dominio Se almeno per un elemento del dominio la funzione non è definita allora si dice che è parziale E è quindi una funzione parziale In particolare E non è definita per ogni E Exp tale che E exp Spesso si usa la seguente notazione per indicare che la funzione su un certo elemento del dominio non è definita: E [3/0] = si legge bottom o indefinito Funzione di valutazione semantica Possiamo ora definire formalmente la funzione di valutazione semantica E che associa ad un albero sintattico E di Exp il suo valore Il dominio semantico di riferimento è l insieme dei numeri naturali IN con le operazioni in esso definite: +,,,div,mod Il tipo della funzione è il seguente: E:Exp IN La definizione di questa funzione viene data mediante il sistema di transizione Γ exp,t exp, exp Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.51/51 Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.49/51 Funzione di valutazione semantica Per definire E usiamo una notazione speciale che sta ad indicare che la funzione che stiamo definendo è una funzione di valutazione semantica: E [E] = k se e solo se E exp k Dalla definizione e dalle regole che abbiamo scritto segue che E, a differenza di η, non è definita per tutte le espressioni Infatti abbiamo visto che per certe espressioni E il sistema che abbiamo definito si blocca In questo caso la definizione se e solo se non dà nessun valore per E [E] Università degli Studi di Camerino - Corso di Laurea in Informatica - Programmazione - Semantica - Oggetti sintattici e oggetti semantici p.50/51

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

Dettagli

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi Codice BCD Prima di passare alla rappresentazione dei numeri relativi in binario vediamo un tipo di codifica che ha una certa rilevanza in alcune applicazioni: il codice BCD (Binary Coded Decimal). È un

Dettagli

La codifica dei numeri

La codifica dei numeri La codifica dei numeri La rappresentazione dei numeri con il sistema decimale può essere utilizzata come spunto per definire un metodo di codifica dei numeri all interno degli elaboratori: la sequenza

Dettagli

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto

Linguaggi Liberi dal Contesto. Linguaggi Liberi dal Contesto rammatiche e Linguaggi Liberi da Contesto Abbiamo visto che molti linguaggi non sono regolari. Consideriamo allora una classe piu ampia di linguaggi, i Linguaggi Liberi da Contesto (CFL) i CFL sono stati

Dettagli

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Grammatiche Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Esempio dei numeri interi Si consideri il linguaggio

Dettagli

La codifica. dell informazione

La codifica. dell informazione 00010010101001110101010100010110101000011100010111 00010010101001110101010100010110101000011100010111 La codifica 00010010101001110101010100010110101000011100010111 dell informazione 00010010101001110101010100010110101000011100010111

Dettagli

Arithmetic and Logic Unit e moltiplicatore

Arithmetic and Logic Unit e moltiplicatore Arithmetic and Logic Unit e moltiplicatore M. Favalli Engineering Department in Ferrara (ENDIF) ALU - multiplier Analisiesintesideicircuitidigitali 1 / 34 Sommario 1 Arithmetic and Logic Unit - ALU 2 Moltiplicatore

Dettagli

Integrale indefinito

Integrale indefinito Integrale indefinito 1 Primitive di funzioni Definizione 1.1 Se f: [a, b] R è una funzione, una sua primitiva è una funzione derivabile g: [a, b] R tale che g () = f(). Ovviamente la primitiva di una funzione,

Dettagli

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

Dettagli

Elementi di Semantica Operazionale. Appunti per gli studenti di Fondamenti di Programmazione (corsi A-B-C)

Elementi di Semantica Operazionale. Appunti per gli studenti di Fondamenti di Programmazione (corsi A-B-C) Elementi di Semantica Operazionale Appunti per gli studenti di Fondamenti di Programmazione (corsi A-B-C) Corso di Laurea in Informatica Università di Pisa A.A. 2004/05 R. Barbuti, P. Mancarella e F. Turini

Dettagli

Espressività e limitazioni delle grammatiche regolari

Espressività e limitazioni delle grammatiche regolari Espressività e limitazioni delle grammatiche regolari Vantaggi: Le grammatiche regolari consentono di esprimere una significativa classe di linguaggi: linguaggi con un numero di sequenze infinito grazie

Dettagli

LA CODIFICA DELL INFORMAZIONE

LA CODIFICA DELL INFORMAZIONE LA CODIFICA DELL INFORMAZIONE Prof. Enrico Terrone A. S: 20/2 Lo schema di Tanenbaum Il livello al quale ci interessiamo in questa lezione è il linguaggio macchina, l unico dove le informazioni e istruzioni

Dettagli

Unità aritmetica e logica

Unità aritmetica e logica Aritmetica del calcolatore Capitolo 9 Unità aritmetica e logica n Esegue le operazioni aritmetiche e logiche n Ogni altra componente nel calcolatore serve questa unità n Gestisce gli interi n Può gestire

Dettagli

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Descrizione delle operazioni di calcolo. Espressioni costanti semplici Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette

Dettagli

Note sui Sistemi di Transizione. Appunti per gli studenti di Programmazione

Note sui Sistemi di Transizione. Appunti per gli studenti di Programmazione Note sui Sistemi di Transizione Appunti per gli studenti di Programmazione Corso di Laurea in Informatica Applicata Polo Universitario G. Marconi - La Spezia Università di Pisa A.A. 2008/09 R. Barbuti,

Dettagli

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Cap. 2 - Rappresentazione in base 2 dei numeri interi Cap. 2 - Rappresentazione in base 2 dei numeri interi 2.1 I NUMERI INTERI RELATIVI I numeri relativi sono numeri con il segno: essi possono essere quindi positivi e negativi. Si dividono in due categorie:

Dettagli

ALGORITMI: PROPRIETÀ FONDAMENTALI

ALGORITMI: PROPRIETÀ FONDAMENTALI ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse

Dettagli

I.4 Rappresentazione dell informazione - Numeri con segno

I.4 Rappresentazione dell informazione - Numeri con segno I.4 Rappresentazione dell informazione - Numeri con segno Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 20, 2015 Argomenti Introduzione 1 Introduzione

Dettagli

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari Fogli Elettronici Idoneità Informatica Prof. Mauro Gaspari Cosa è un foglio elettronico. Strumento per raccogliere dati organizzati in tabelle e farci delle operazioni: Le celle contengono numeri o altri

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Grammatiche. Rosario Culmone, Luca Tesei. 20/11/2006 UNICAM - p. 1/49

Grammatiche. Rosario Culmone, Luca Tesei. 20/11/2006 UNICAM - p. 1/49 Grammatiche Rosario Culmone, Luca Tesei 20/11/2006 UNICAM - p. 1/49 Grammatiche libere dal contesto Ogni linguaggio di programmazione ha delle regole che prescrivono la struttura sintattica dei programmi

Dettagli

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale Analogico vs. Digitale LEZIONE II La codifica binaria Analogico Segnale che può assumere infiniti valori con continuità Digitale Segnale che può assumere solo valori discreti Analogico vs digitale Il computer

Dettagli

Cenni di programmazione ricorsiva. Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B)

Cenni di programmazione ricorsiva. Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B) Cenni di programmazione ricorsiva Appunti per gli studenti di Programmazione I e Laboratorio (corsi A-B) Corso di Laurea in Informatica Università di Pisa A.A. 2009/10 R. Barbuti, P. Mancarella Indice

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Potenza espressiva degli automi Potenza espressiva delle grammatiche 9/11/2004 Programmazione - Luca Tesei 1 Linguaggi Regolari Tutti i linguaggi che possono essere

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 3 Dimostrazione di Tautologie e Sintassi del Calcolo osizionale Antonio, Corrado e Bruno... formalmente Tautologie: dimostrazioni e controesempi Sintassi del Calcolo

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

La codifica. dell informazione

La codifica. dell informazione La codifica dell informazione (continua) Codifica dei numeri Il codice ASCII consente di codificare le cifre decimali da 0 a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre

Dettagli

Rappresentazioni numeriche

Rappresentazioni numeriche Rappresentazioni numeriche Un numero è dotato di un valore una rappresentazione La rappresentazione di un numero è il sistema che utilizziamo per indicarne il valore. Normalmente è una sequenza (stringa)

Dettagli

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli Codice La relazione che associa ad ogni successione ben formata di simboli di un alfabeto il dato corrispondente è detta codice. Un codice mette quindi in relazione le successioni di simboli con il significato

Dettagli

Aritmetica dei Calcolatori Elettronici

Aritmetica dei Calcolatori Elettronici Aritmetica dei Calcolatori Elettronici Prof. Orazio Mirabella L informazione Analogica Segnale analogico: variabile continua assume un numero infinito di valori entro l intervallo di variazione intervallo

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario I sistemi di numerazione Il sistema binario Altri sistemi di numerazione Algoritmi di conversione Esercizi 07/03/2012 2 Sistemi

Dettagli

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n Cristina Turrini UNIMI - 2016/2017 Cristina Turrini (UNIMI - 2016/2017) Elementi di Algebra e di Matematica

Dettagli

Teoria intuitiva degli insiemi

Teoria intuitiva degli insiemi Teoria intuitiva degli insiemi Il concetto di insieme. lcuni esempi Tutta la matematica moderna è fondata sul concetto di insieme. Un insieme è da considerarsi nella sua nozione intuitiva di collezione,

Dettagli

Foglio Elettronico Lezione 1

Foglio Elettronico Lezione 1 - Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

LEZIONE DI MATEMATICA SISTEMI DI NUMERAZIONE. (Prof. Daniele Baldissin)

LEZIONE DI MATEMATICA SISTEMI DI NUMERAZIONE. (Prof. Daniele Baldissin) LEZIONE DI MATEMATICA SISTEMI DI NUMERAZIONE (Prof. Daniele Baldissin) L'uomo usa normalmente il sistema di numerazione decimale, probabilmente perché ha dieci dita. Il sistema decimale è collegato direttamente

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 3 Dimostrazione di Tautologie e Sintassi del Calcolo osizionale Antonio, Corrado e Bruno... formalmente Tautologie: dimostrazioni e controesempi Sintassi del Calcolo

Dettagli

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Fondamenti della Matematica a.a LUMSA. Basi di numerazione. Scrittura in forma polinomiale e scrittura in una base

Fondamenti della Matematica a.a LUMSA. Basi di numerazione. Scrittura in forma polinomiale e scrittura in una base Basi di numerazione L utilizzo della scrittura posizionale (che assegna allo stesso simbolo valore differente a seconda della posizione in cui è scritto) permette di rappresentare un qualsiasi numero naturale

Dettagli

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base

modificato da andynaz Cambiamenti di base Tecniche Informatiche di Base Cambiamenti di base Tecniche Informatiche di Base TIB 1 Il sistema posizionale decimale L idea del sistema posizionale: ogni cifra ha un peso Esempio: 132 = 100 + 30 + 2 = 1 10 2 + 3 10 1 + 2 10 0 Un numero

Dettagli

Codifica dell informazione

Codifica dell informazione Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Codifica dell informazione Pietro Di Lena - pietro.dilena@unibo.it There are 10 types of people in this world: understand binary

Dettagli

Laboratorio di Python

Laboratorio di Python Problem solving, Ricorsione, Università di Bologna 13 e 15 marzo 2013 Sommario 1 2 3 4 Errore di semantica Esercizio def vocali(s): voc='' for c in s: if c in 'aeiou': voc=voc+c return voc Cerchiamo di

Dettagli

Rappresentazione dell Informazione

Rappresentazione dell Informazione Rappresentazione dell Informazione Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle grammatiche 1

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Rappresentazione dell Informazione Barbara Masucci Cosa studiamo oggi Ø Un moderno elaboratore è un sistema elettronico digitale programmabile Ø Il suo comportamento è flessibile

Dettagli

Lezioni di Informarica. Prof. Giovanni Occhipinti

Lezioni di Informarica. Prof. Giovanni Occhipinti Lezioni di Informarica Prof. Giovanni Occhipinti 23 settembre 2010 2 Indice 1 La codifica delle Informazioni 5 1.1 Il sistema binario........................... 5 1.1.1 Conversione da binario a decimale.............

Dettagli

Informazione binaria: - codici binari, notazione binaria/ottale/esadecimale -

Informazione binaria: - codici binari, notazione binaria/ottale/esadecimale - Informazione binaria: - codici binari, notazione binaria/ottale/esadecimale - Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin ... Algoritmi,

Dettagli

La "macchina" da calcolo

La macchina da calcolo La "macchina" da calcolo Abbiamo detto che gli algoritmi devono essere scritti in un linguaggio "comprensibile all'esecutore" Se il nostro esecutore è il "calcolatore", questo che linguaggio capisce? che

Dettagli

Codifica dell informazione

Codifica dell informazione Codifica dell informazione Gli algoritmi sono costituiti da istruzioni (blocchi sequenziali, condizionali, iterativi) che operano su dati. Per trasformare un programma in una descrizione eseguibile da

Dettagli

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

Dettagli

Piccolo teorema di Fermat

Piccolo teorema di Fermat Piccolo teorema di Fermat Proposizione Siano x, y Z, p N, p primo. Allora (x + y) p x p + y p (mod p). Piccolo teorema di Fermat Proposizione Siano x, y Z, p N, p primo. Allora (x + y) p x p + y p (mod

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre

Dettagli

Operazioni numeriche - Input

Operazioni numeriche - Input Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di input 11/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Operazioni fra interi e decimali In Java

Dettagli

Grammatiche Parse trees Lezione del 17/10/2012

Grammatiche Parse trees Lezione del 17/10/2012 Fondamenti di Programmazione A.A. 2012-2013 Grammatiche Parse trees Lezione del 17/10/2012 AUTILI MARCO http://www.di.univaq.it/marco.autili/ Riassunto lezione precedente Sintassi vs Semantica Stringhe,

Dettagli

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto Rappresentazione di numeri relativi (interi con segno) E possibile estendere in modo naturale la rappresentazione dei numeri naturali ai numeri relativi. I numeri relativi sono numeri naturali preceduti

Dettagli

Codifica dell Informazione

Codifica dell Informazione Introduzione all Informatica Fabrizio Angiulli Codifica dell Informazione CODIFICA DI DATI E ISTRUZIONI Algoritmi Istruzioni che operano su dati Per scrivere un programma è necessario rappresentare dati

Dettagli

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio ECDL MODULO 1 Prof. Onofrio Greco Modulo 1 Concetti di base dell ICT Modulo 2 Uso del Computer e Gestione dei File Modulo 3 - Elaborazione testi Modulo 4 Foglio Elettronico Modulo 5 Uso delle Basi di Dati

Dettagli

Precorsi di matematica

Precorsi di matematica Precorsi di matematica Francesco Dinuzzo 12 settembre 2005 1 Insiemi Il concetto di base nella matematica moderna è l insieme. Un insieme è una collezione di elementi. Gli elementi di un insieme vengono

Dettagli

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Sistemi di numerazione posizionali La rappresentazione dei numeri richiede ovviamente una codifica, ovvero la definizione

Dettagli

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria. Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo

Dettagli

La rappresentazione delle informazioni in un computer. La numerazione binaria

La rappresentazione delle informazioni in un computer. La numerazione binaria La rappresentazione delle informazioni in un computer La numerazione binaria Per comprendere la numerazione binaria dobbiamo prima discutere di alcune caratteristiche della numerazione decimale La numerazione

Dettagli

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica G=(V n,v t

PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica G=(V n,v t PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica Una grammatica permette di stabilire se una sequenza di simboli

Dettagli

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Analizzatore lessicale o scanner Dispensa del corso di Linguaggi e Traduttori A.A. 2005-2006 Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser. Lo scanner,

Dettagli

Introduzione al C++ (continua)

Introduzione al C++ (continua) Introduzione al C++ (continua) I puntatori Un puntatore è una variabile che contiene un indirizzo di memoria pi_greco 3.141592 pi_greco_ptr indirizzo di 3.141592 & DEREFERENZIAZIONE RIFERIMENTO * se x

Dettagli

1 IL LINGUAGGIO MATEMATICO

1 IL LINGUAGGIO MATEMATICO 1 IL LINGUAGGIO MATEMATICO Il linguaggio matematico moderno è basato su due concetti fondamentali: la teoria degli insiemi e la logica delle proposizioni. La teoria degli insiemi ci assicura che gli oggetti

Dettagli

Logica proposizionale

Logica proposizionale Definire un linguaggio formale Logica proposizionale Sandro Zucchi 2013-14 Definiamo un linguaggio formale LP (che appartiene a una classe di linguaggi detti linguaggi della logica proposizionale) Per

Dettagli

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari Esercizi di Fondamenti di Informatica per la sicurezza tefano Ferrari 23 dicembre 2003 2 Argomento 1 Grammatiche e linguaggi Esercizi Es. 1.1 Definiti i linguaggi: L 1 = {aa, ab, bc, c} L 2 = {1, 22, 31}

Dettagli

Codifica dell Informazione

Codifica dell Informazione Francesco Folino CODIFICA DI DATI E ISTRUZIONI Algoritmi Istruzioni che operano su dati Per scrivere un programma è necessario rappresentare dati e istruzioni in un formato tale che l esecutore automatico

Dettagli

A B C D E F

A B C D E F Il sistema di numerazione binario Il sistema di numerazione binario è di tipo posizionale (le cifre valgono secondo la posizione occupata) e a base 2 (le cifre usate sono due: lo zero, 0, e l uno, 1).

Dettagli

Informatica, Algoritmi, Linguaggi

Informatica, Algoritmi, Linguaggi Elementi di Informatica e Applicazioni Numeriche T Informatica, Algoritmi, Linguaggi Cos'è l'informatica? Che cos'è l'informatica? Cos'è l'informatica? Che cos'è l'informatica? Dell'informatica possiamo

Dettagli

CORSO ZERO DI MATEMATICA

CORSO ZERO DI MATEMATICA UNIVERSITÀ DEGLI STUDI DI PALERMO FACOLTÀ DI ARCHITETTURA CORSO ZERO DI MATEMATICA RADICALI Dr. Erasmo Modica erasmo@galois.it LE RADICI Abbiamo visto che l insieme dei numeri reali è costituito da tutti

Dettagli

Codifica binaria. Rappresentazioni medianti basi diverse

Codifica binaria. Rappresentazioni medianti basi diverse Codifica binaria Rappresentazione di numeri Notazione di tipo posizionale (come la notazione decimale). Ogni numero è rappresentato da una sequenza di simboli Il valore del numero dipende non solo dalla

Dettagli

La codifica binaria. Informatica B. Daniele Loiacono

La codifica binaria. Informatica B. Daniele Loiacono La codifica binaria Informatica B Introduzione Il calcolatore usa internamente una codifica binaria ( e ) per rappresentare: i dati da elaborare le istruzioni dei programmi eseguibili Fondamenti di codifica

Dettagli

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due Conversione di base Dato N>0 intero convertirlo in base b dividiamo N per b, otteniamo un quoto Q 0 ed un resto R 0 dividiamo Q 0 per b, otteniamo un quoto Q 1 ed un resto R 1 ripetiamo finché Q n < b

Dettagli

ALCUNI CENNI SUGLI INSIEMI

ALCUNI CENNI SUGLI INSIEMI ALCUNI CENNI SUGLI INSIEMI In Matematica il concetto di insieme è assunto come primitivo, cioè non si definisce. Considereremo quindi la nozione di insieme dal punto di vista intuitivo. Un insieme è quindi

Dettagli

Espressioni e Comandi

Espressioni e Comandi Espressioni e Comandi March 24, 2017 Elementi di Base dei Programmi Ricordate? Macchina Astratta: Insieme di algoritmi e strutture dati che permettono di memorizzare ed eseguire programmi Abbiamo parlato

Dettagli

Sistemi di numerazione

Sistemi di numerazione Sistemi di numerazione Introduzione Un sistema di numerazione è un sistema utilizzato per esprimere i numeri e possibilmente alcune operazioni che si possono effettuare su di essi. Storicamente i sistemi

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

1.2e: La codifica Digitale dei Numeri

1.2e: La codifica Digitale dei Numeri Prof. Alberto Postiglione Dipartimento di Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : La codifica Digitale dei Numeri Informatica Generale (Corso di Studio

Dettagli

Corso di Architettura degli Elaboratori

Corso di Architettura degli Elaboratori Corso di Architettura degli Elaboratori Codifica dell'informazione: Numeri Binari (lucidi originali della Prof.ssa Zacchi e del Prof. Balossino, rivisti dal Prof. Baldoni) 1 Codifica dell'informazione?

Dettagli

Concetti di base sugli automi e sui linguaggi formali

Concetti di base sugli automi e sui linguaggi formali Concetti di base sugli automi e sui linguaggi formali Andrea Burattin 18 marzo 2005 Sommario Piccolo insieme di concetti sul funzionamento degli automi (a stati finiti, a pila,...), delle grammatiche libere

Dettagli

Intro. Traduzione guidata dalla sintassi. Attributi. Due notazioni a diversi livelli. Due notazioni a diversi livelli. Il flusso concettuale

Intro. Traduzione guidata dalla sintassi. Attributi. Due notazioni a diversi livelli. Due notazioni a diversi livelli. Il flusso concettuale Intro Traduzione guidata dalla sintassi Attributi e Definizioni guidate dalla sintassi In questa ultima parte del corso vediamo, in breve, una tecnica che permette di effettuare analisi semantiche e traduzione

Dettagli

Concetti di base dell ICT

Concetti di base dell ICT Informatica Linguaggio di programmazione Computer Bit Algoritmo Linguaggio macchina Informatica: Informazione automatica Gli anglosassoni usano il termine Computer Science = Scienza dei Calcolatori Computer:

Dettagli

Pumping lemma per i linguaggi Context-free

Pumping lemma per i linguaggi Context-free Pumping lemma per i linguaggi Context-free Sia L un linguaggio context-free. E possibile determinare una costante k, dipendente da L, tale che qualunque stringa z! L con z > k si può esprimere come z=

Dettagli

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

I sistemi di numerazione e la numerazione binaria

I sistemi di numerazione e la numerazione binaria Ci sono solamente 10 tipi di persone nel mondo: chi comprende il sistema binario e chi no. Anonimo I sistemi di numerazione e la numerazione binaria 1 Sistema additivo e sistema posizionale Contare per

Dettagli

Rappresentazione e Codifica dell Informazione

Rappresentazione e Codifica dell Informazione Rappresentazione e Codifica dell Informazione Capitolo 1 Chianese, Moscato, Picariello, Alla scoperta dei fondamenti dell informatica un viaggio nel mondo dei BIT, Liguori editore. Sistema di numerazione

Dettagli

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Dettagli

Corso di Controllo Digitale Equazioni alle Differenze e Z-trasformate a

Corso di Controllo Digitale Equazioni alle Differenze e Z-trasformate a Corso di Controllo Digitale Equazioni alle Differenze e Z-trasformate a Università degli Studi della Calabria Corso di Laurea in Ingegneria Elettronica. Ing. Domenico Famularo a Proprietà Letteraria Riservata

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

La Rappresentazione Dell informazione

La Rappresentazione Dell informazione La Rappresentazione Dell informazione Parte I I Sistemi Di Numerazione La Rappresentazione Una rappresentazione è una relazione tra entità Un oggetto (rappresentante) rappresenta un altro oggetto (rappresentato),

Dettagli

Introduzione e Nozioni di Base. Prof. Thomas Casali

Introduzione e Nozioni di Base. Prof. Thomas Casali Università degli studi di Bologna Facoltà di Economia Sede di Forlì Introduzione e Nozioni di Base Corso di Laurea in Economia di Internet Prof. Thomas Casali thomas@casali.biz La rappresentazione digitale

Dettagli