Parser Bottom UP. Giuseppe Morelli

Размер: px
Начинать показ со страницы:

Download "Parser Bottom UP. Giuseppe Morelli"

Транскрипт

1 Parser Bottom UP Giuseppe Morelli

2 Parser Bottom UP Un parser Bottom Up lavora costruendo il corrispondente albero di parsing per una data stringa di input partendo dalle foglie (bottom) e risalendo via visa verso la radice (top).

3 Nel seguito verranno trattati parser bottom up noti come Shift-Reduce parser. Sono in grado di costruire grammatiche chiamate LR. La costruzione di parser LR è alquanto complessa; Esistono tuttavia generatori automatici di parser in grado di costruire parser LR efficienti

4 Riduzioni Il parsing Bottom Up può essere pensato come il processo di riduzione di un data stringa w al simbolo iniziale della grammatica. Ad ogni passo della riduzione uno specifica sottostringa che coincide con il corpo di una produzione è sostituita da il simbolo non terminale della testa della produzione stessa. Durante il parsing è fattore chiave riuscire a determinare quando effetturare una riduzione e quale produzione applicare affinchè il parsing possa proseguire

5 Ritornando all esempio: La sequenza di riduzioni applicate può essere codificata attraverso: NOTA: Dopo le prime due riduzioni (F->id; T->F) si potrebbe Ridurre T attraverso E->T oppure id (di destra) attraverso F -> id

6 Per definizione una riduzione è il passo inverso della procedura di derivazione (attraverso la quale un non terminale era sostituito dal corpo di una produzione, durante la generazione di una stringa). Lo scopo del parsing bottom-up è costruire un darivazione al contrario (in senso inverso). Derivazione Riduzione

7 Esempio Si consideri la grammatica S -> aabe A -> Abc b B -> d E l input: abbcde Riduzione: abbcde (A->b A->Abc B->d S->aABe) abbcde, aabcde, aade, aabe, S Derivazione S => aabe => aade => aabcde => abbcde

8 Per ottenere una riduzione al simbolo iniziale attraverso l inversa di una derivazione è necessario essere in grado di riconoscere gli handles(maniglie) delle varie forme proposizionali. Un handle è una sottostringa che coincide con il corpo di una produzione e la cui riduzione rappresenta un passo lungo il processo di derivazione destra inverso Esempio precedente i simboli sottolineati sono handles

9 Data una forma proposizionale destra γ un handle per γ è una produzione A -> β ed una posizione in γ corrispondente ad una occorrenza di β tale che rimpiazzando β con A si ottiene ancora una forma sentenziale destra che precede immediatamente γ in una derivazione destra per γ. o equivalentemente Se S => αaw => αβw allora la produzione A->β nella posizione seguente ad α è un handle di αβw.

10 NOTE Alla destra dell handle la stringa w è fatta solo di simboli terminali Se una grammatica è non ambigua ogni forma sentenziale destra avrà solo un handle (ovvero le derivazioni destre sono univocamente determinte) Sebbene formalmente un handle è una produzione spesso ci si riferirà solo al suo body

11 Esempi. Si consideri la stringa id+id*id e la grammatica: E -> E+E E*E (E) id id+id*id => E + id * id => E+E*id => E+E*E => E+E => E id+id*id =>E+id*id =>E+E *id => E*id => E*E => E

12 L inversa di una derivazione destra può essere ottenuta attraverso un procediemento di potatura degli handle (handle pruning).

13

14 Si parte dalla stringa di terminali w da ridurre; se w è una frase della grammatica(sentence: derivazione ovvero forma sentenziale con soli terminali) allora sia w =γn dove γn è n-esima forma sentenziale destra di una derivazione destra Per ricostruire la derivazione nell ordine inverso: localizzare l handle βn in γn e rimpiazzare βn con la testa della produzione An -> βn per ottenere la forma sentenziale γn-1. Si continua trovando βn-1 in γn-1. fino ad arrivare al simbolo iniziale. La sequenza delle produzioni utilizzate (in ordine inverso) rappresenta la derivazione destra per la stringa di input

15 Shift- Reduce parser Per una corretta potatura dell albero si devono affrontare e risolvere due problemi: 1. Bisogna essere in grado di localizzare la sottostringa da ridurre 2. Bisogna determinare quale produzione utilizzare nella riduzione Tali problemi possono essere affrontati utilizzando: Uno stack per contenere i simboli della grammatica ovvero un prefisso della forma sentenziale destra fino ad un handle Un buffer di input per contenere la porzione di input di cui ancora si deve fare il parsing.

16 Convenzionalmente il $ indica sia il top dello stack sia la destra della stringa di input Inizialmente stack vuoto e stringa w si indicherà con: Durante il processo di analisi della stringa di input da sinistra a destra, il parser muoverà 0 o più simboli nello stack fino a quando non sarà in grado di ridurre una stringa della grammatica (corpo della produzione) con il top dello stack (sostituisce top con non terminale testa della produzione). La fine senza errori è determinata dalla presenza del simbolo iniziale nello stack, con buffer di input vuoto.

17

18 Operazioni di un parser Shift Reduce. Shift: sposta il successivo simbolo di input nello stack Reduce: riduzione dell handle sullo stack (top) mediante una opportuna produzione. Sostituzione dell handle con un non terminale Accept: Segnalazione che il parsing si è concluso con successo Error: Segnalare errore di sintatti e richiamare una opportuna procedure di recovery.

19 Esempio E -> E + E E -> E * E E -> (E) E -> id STACK $ $ id $ E $ E + id $ E + E $ E + E id $ E + E E $ E + E $ E INPUT id + id id $ + id id $ + id id $ * id $ * id $ $ $ $ $ AZIONE SHIFT REDUCE E id SHIFT, SHIFT REDUCE E id SHIFT, SHIFT (perché NON REDUCE E E + E) REDUCE E id E E E E E + E ACCEPT

20 Handle e top dello stack Due passi successivi di una derivazione destra possono essere di due forme differenti: βby sostiuisce A e B (terminale più a destra) è sostituito da γ Considerando in senso inverso ad un dato istante lo stack sarà si riduce γ con B Shift y, riduce βby con A.

21 La seconda forma prevede: A è epanso per primo con y fatto solo di terminali; mentre qualche terminale B sta a sinistra di y con handle γ Considerando in senso inverso ad un dato istante lo stack sarà:---- Si riduce γ con B shiftano x e y; ridurre y con A

22 Conflitti Un parser shift-reduce può raggiungere una configurazione in cui, pur conoscendo lo stack nella sua interezza ed i simboli di input da trattare, non sa decidere se: Effettaure una operazione di SHIFT o di REDUCE (conflitto Shift/Reduce) Scegliere fra più riduzioni possibili quale effettuare (conflitto Reduce/Reduce)

23 Esempio Quando il parser è nella seguente configurazione: Non è possibile determinare se nello stack c è un handle oppure no quindi se fare un o shift o una riduzione

24 Esempio Quando il parser è nella seguente configurazione: Non sappiamo decidere quale riduzione fare tra (5) e (7) Se invece di id per array e procedure il lexer restituisce risp. id e procid per i costrutti

Linguaggi formali e compilazione

Linguaggi formali e compilazione Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2015/2016 Linguaggi formali e compilazione Elementi generali Un parser generico di tipo procede operando una sequenza di riduzioni a

Подробнее

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=

Подробнее

Dispensa 1. Da un punto di vista logico l architettura di un compilatore si può suddividere in due parti: Analisi e Sintesi.

Dispensa 1. Da un punto di vista logico l architettura di un compilatore si può suddividere in due parti: Analisi e Sintesi. Dispensa 1 1. Introduzione ai compilatori Compilatore Un compilatore è un programma che legge un programma scritto in un linguaggio (sorgente) e lo traduce in un programma equivalente in un altro linguaggio

Подробнее

Forma Normale di Chomsky

Forma Normale di Chomsky 2. Eliminazione delle produzioni unitarie Forma Normale di Chomsky Una produzione si dice unitaria se è della forma A! B. Le produzioni unitarie in pratica consistono in una ridenominazione di variabili,

Подробнее

Analisi sintattica (parser)

Analisi sintattica (parser) Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Analisi sintattica (parser) Giacomo PISCITELLI Analisi sintattica: il parser Problema di base dell analisi

Подробнее

Forme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach

Forme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach Forme Normali A partire da una grammatica Context-free G è sempre possibile costruire una grammatica equivalente G ovvero L(G) = L(G ) che abbiano le produzioni in forme particolari, dette forme normali.

Подробнее

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi Linguaggi di Programmazione Corso C Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali Nicola Fanizzi ([email protected]) Dipartimento di Informatica Università degli Studi di Bari Grammatiche

Подробнее

Linguaggi e Grammatiche Liberi da Contesto

Linguaggi e Grammatiche Liberi da Contesto N.Fanizzi-V.Carofiglio Dipartimento di Informatica Università degli Studi di Bari 22 aprile 2016 1 Linguaggi Liberi da Contesto 2 Grammatiche e Linguaggi Liberi da Contesto G = (X, V, S, P) è una grammatica

Подробнее

Contenuti del corso. Parsing: esempio. Cosa aggiungiamo in questo corso. Parsing. Data una grammatica: E T T + E

Contenuti del corso. Parsing: esempio. Cosa aggiungiamo in questo corso. Parsing. Data una grammatica: E T T + E Continuazione del corso di linguaggi. Nuovi paradigmi di computazione logico: Prolog logic - funzionale: Curry Teoria base dei compilatori parsing grammatiche ad attributi type checking generazione codice

Подробнее

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

Подробнее

Dispensa 3. 1.1 YACC: generalità

Dispensa 3. 1.1 YACC: generalità Dispensa 3 1.1 YACC: generalità Il tool Yacc (acronimo per Yet Another Compiler Compiler) è uno strumento software che a partire da una specifica grammaticale context free di un linguaggio scritta in un

Подробнее

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

Подробнее

Definizione di Grammatica

Definizione di Grammatica Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla ( VN, VT, P, S ) dove: V N e l insieme dei simboli non

Подробнее

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

Подробнее

Grammatiche context-free

Grammatiche context-free Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2013-2014 Linguaggi Formali e Compilatori Grammatiche context-free Giacomo PISCITELLI Politecnico di Bari G. Piscitelli pag. 1 di 28 Grammatiche

Подробнее

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 richiami teorici sulle grammatiche di Chomsky esercizivari esercizi su grammatiche ed espressioni regolari

Подробнее

Il Modello di un Compilatore. La costruzione di un compilatore per un particolare linguaggio di programmazione e' abbastanza complessa.

Il Modello di un Compilatore. La costruzione di un compilatore per un particolare linguaggio di programmazione e' abbastanza complessa. Il Modello di un Compilatore La costruzione di un compilatore per un particolare linguaggio di programmazione e' abbastanza complessa. La complessità dipende dal linguaggio sorgente. Compilatore: traduce

Подробнее

Trattamento degli errori

Trattamento degli errori Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2011-2012 Linguaggi Formali e Compilatori Trattamento degli errori Giacomo PISCITELLI Trattamento degli errori Comunemente gli errori di programmazione

Подробнее

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi

Подробнее

Codifica di Huffman e Lempel-Ziv-Welch A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

Codifica di Huffman e Lempel-Ziv-Welch A L B E R T O B E L U S S I A N N O A C C A D E M I C O / Codifica di Huffman e Lempel-Ziv-Welch 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 0 / 2 0 1 1 Tipi di compressione Senza perdita (lossless): permettono di ricostruire perfettamente

Подробнее

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: Esercizi su Python 14 maggio 2012 1. Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: 1. conti quanti elementi pari sono presenti nella lista; 2. conti quanti quadrati

Подробнее

TRIE (albero digitale di ricerca)

TRIE (albero digitale di ricerca) TRIE (albero digitale di ricerca) Struttura dati impiegata per memorizzare un insieme S di n stringhe (il vocabolario V). Tabelle hash le operazioni di dizionario hanno costo O(m) al caso medio per una

Подробнее

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 5 Alberto Ceselli [email protected] Università degli Studi di Milano 12 Marzo 2013 Le funzioni sono oggetti di prima classe in Scheme In Scheme le funzioni

Подробнее

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari 4 maggio Nota: gli esercizi più impegnativi sono contrassegnati dal simbolo ( ) Esercizio Siano 3 6 8 6 4 3 3 ) determinare

Подробнее

Verificare se una grammatica e LL(1) e costruirne la tabella di parsing. Verificare se una grammatica e LR(0) e costruirne la tabele ACTION e GOTO

Verificare se una grammatica e LL(1) e costruirne la tabella di parsing. Verificare se una grammatica e LR(0) e costruirne la tabele ACTION e GOTO ANALISI SINTATTICA TIPO 1: Data un linguaggio scrivere una grammatica che lo generi TIPO 2: Verificare se una grammatica non contestuale è ambigua TiPO 3: Verificare se una grammatica e LL(1) e costruirne

Подробнее

9. CALCOLO INTEGRALE: L INTEGRALE INDEFINITO

9. CALCOLO INTEGRALE: L INTEGRALE INDEFINITO ISTITUZIONI DI MATEMATICHE E FONDAMENTI DI BIOSTATISTICA 9. CALCOLO INTEGRALE: L INTEGRALE INDEFINITO A. A. 2014-2015 L. Doretti 1 La nascita e lo sviluppo del calcolo integrale sono legati a due tipi

Подробнее

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Подробнее

Video Scrittura (MS Word) Lezione 3 Formattazione e Stampa documenti

Video Scrittura (MS Word) Lezione 3 Formattazione e Stampa documenti Video Scrittura (MS Word) Lezione 3 Formattazione e Stampa documenti Formattazione di un documento La formattazione di un documento consente di migliorare l impaginazione del testo e di dare al al documento

Подробнее

Le grammatiche formali

Le grammatiche formali Le grammatiche formali Il carattere generativo dei sistemi linguisticii i Consideriamo i la seguente frase: Un gatto rincorre il topo Non facciamo difficoltà a riconoscere che si tratta di una frase sintatticamente

Подробнее

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

Подробнее

Esercitazioni di Reti Logiche. Lezione 5

Esercitazioni di Reti Logiche. Lezione 5 Esercitazioni di Reti Logiche Lezione 5 Circuiti Sequenziali Zeynep KIZILTAN [email protected] Argomenti Circuiti sequenziali Flip-flop D, JK Analisi dei circuiti sequenziali Progettazione dei circuiti

Подробнее

Logica proposizionale

Logica proposizionale Logica proposizionale Proposizione: frase compiuta che è sempre o vera o falsa. Connettivi Posti in ordine di precedenza: not, and, or, implica, doppia implicazione Sintassi Le proposizioni sono costituite

Подробнее

Capitolo 1 Vettori applicati e geometria dello spazio

Capitolo 1 Vettori applicati e geometria dello spazio Capitolo 1 Vettori applicati e geometria dello spazio Marco Robutti Facoltà di ingegneria Università degli studi di Pavia Tutorato di geometria e algebra lineare Anno accademico 2014-2015 Definizione (Vettore

Подробнее

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

Подробнее

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara Sistemi lineari Lorenzo Pareschi Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara http://utenti.unife.it/lorenzo.pareschi/ [email protected] Lorenzo Pareschi (Univ. Ferrara)

Подробнее

ESERCIZI SUI PUNTI DI NON DERIVABILITÀ TRATTI DA TEMI D ESAME

ESERCIZI SUI PUNTI DI NON DERIVABILITÀ TRATTI DA TEMI D ESAME ESERCIZI SUI PUNTI DI NON DERIVABILITÀ TRATTI DA TEMI D ESAME a cura di Michele Scaglia FUNZIONI DERIVABILI Sia f : domf R una funzione e sia 0 domf di accumulazione per domf Chiamiamo derivata prima di

Подробнее

Scopo della trigonometria è la risoluzione di un triangolo a partire da un numero minimo di informazioni sul triangolo steso che come sappiamo è 3.

Scopo della trigonometria è la risoluzione di un triangolo a partire da un numero minimo di informazioni sul triangolo steso che come sappiamo è 3. MODULO 3 LEZIONE 3 parte 2 Trigonometria: La risoluzione dei triangoli. Scopo della trigonometria è la risoluzione di un triangolo a partire da un numero minimo di informazioni sul triangolo steso che

Подробнее

Stabilità e retroazione

Stabilità e retroazione 0.0. 4.1 1 iagramma Stabilità e retroazione Stabilità dei sistemi dinamici lineari: Un sistema G(s) è asintoticamente stabile se tutti i suoi poli sono a parte reale negativa. Un sistema G(s) è stabile

Подробнее

Cosa è l Informatica?

Cosa è l Informatica? Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore

Подробнее

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,

Подробнее

Soluzione/* PROGRAMMAZIONE IN C */ #include <stdio.h> #include <stdlib.h>

Soluzione/* PROGRAMMAZIONE IN C */ #include <stdio.h> #include <stdlib.h> Ricerca di un elemento in vettore Scrivere un programma in linguaggio C che riceve in ingresso una sequenza di N numeri interi. I numeri sono memorizzati in un vettore. Il valore N è inserito dall utente,

Подробнее

Informatica Generale Homework di Recupero 2016

Informatica Generale Homework di Recupero 2016 Informatica Generale Homework di Recupero 016 docente: Ivano Salvo Sapienza Università di Roma Gruppo 1 Esercizio 1.1 Scrivere un programma C che presi in input due interi positivi a ed b (a, b > 0) calcola

Подробнее

Turing, i nastri e le macchine

Turing, i nastri e le macchine Turing, i nastri e le macchine Giochiamo con i nastri Avete a disposizione un nastro diviso in sezioni rettangolari, che chiameremo caselle, ognuna delle quali può essere vuota oppure contenere la lettera

Подробнее

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Подробнее

Algoritmi e soluzione di problemi

Algoritmi e soluzione di problemi Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)

Подробнее

2. APPUNTI SUI FASCI DI CIRCONFERENZE (raccolti dal prof. G. Traversi)

2. APPUNTI SUI FASCI DI CIRCONFERENZE (raccolti dal prof. G. Traversi) 2. APPUNTI SUI FASCI DI CIRCONFERENZE (raccolti dal prof. G. Traversi) La circonferenza è la curva di 2^ grado che viene individuata univocamente da tre punti non allineati e possiede la seguente proprietà:

Подробнее

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,

Подробнее

Le quattro operazioni fondamentali

Le quattro operazioni fondamentali Le quattro operazioni fondamentali ADDIZIONE Def: Si dice ADDIZIONE l operazione con la quale si calcola la somma; i numeri da addizionare si dicono ADDENDI e il risultato si dice SOMMA o TOTALE. Proprietà:

Подробнее

Fasi di un Compilatore

Fasi di un Compilatore Dipartimento di Matematica e Informatica Università di Camerino Un implementazione compilativa di un linguaggio di programmazione viene realizzata tramite un programma che prende il nome di compilatore

Подробнее

Linguaggi e tecnologie per il Web

Linguaggi e tecnologie per il Web Sapienza Università di Roma Corso di Laurea in Ingegneria Informatica e Automatica Linguaggi e tecnologie per il Web a.a. 2015/2016 Riccardo Rosati Dipartimento di ingegneria informatica, automatica e

Подробнее

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

Подробнее

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} } ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il

Подробнее

Esercitazioni di Reti Logiche

Esercitazioni di Reti Logiche Esercitazioni di Reti Logiche Sintesi di Reti Sequenziali Zeynep KIZILTAN Dipartimento di Scienze dell Informazione Universita degli Studi di Bologna Anno Academico 2007/2008 Sintesi dei circuiti sequenziali

Подробнее

Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis

Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis Capitolo 2 Grammatiche e Linguaggi Si ringraziano il Prof. Giovanni Semeraro e il Dott. Pasquale Lops per la concessione del

Подробнее

Raggiungibilità, Controllabilità, Osservabilità e Determinabilità

Raggiungibilità, Controllabilità, Osservabilità e Determinabilità Raggiungibilità, Controllabilità, Osservabilità e Determinabilità Si determini se i sistemi lineari tempo invarianti ẋ(t) = Ax(t) + Bu(t), Σ c : y(t) = Cx(t) + Du(t). x(k + ) = Ax(k) + Bu(k), Σ d : y(k)

Подробнее

In questo articolo descriveremo le formule da applicare alle seguenti operazioni sulle stringhe di testo:

In questo articolo descriveremo le formule da applicare alle seguenti operazioni sulle stringhe di testo: a cura di Giovanna Arcadu, Paolo Ardizzoni, Ignazio Putignano In questo articolo descriveremo le formule da applicare alle seguenti operazioni sulle stringhe di testo: 1. Contare il numero di occorrenze

Подробнее

CIRCUITI IN CORRENTE CONTINUA

CIRCUITI IN CORRENTE CONTINUA IUITI IN ONT ONTINUA Un induttanza e tre resistenze 2 J J 2 L Il circuito sta funzionando da t = con l interruttore aperto. Al tempo t = 0 l interruttore viene chiuso. alcolare le correnti. Per t 0 circola

Подробнее

Alberi binari e alberi binari di ricerca

Alberi binari e alberi binari di ricerca Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Подробнее

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Подробнее

Moltiplicazione. Divisione. Multipli e divisori

Moltiplicazione. Divisione. Multipli e divisori Addizione Sottrazione Potenze Moltiplicazione Divisione Multipli e divisori LE QUATTRO OPERAZIONI Una operazione aritmetica è quel procedimento che fa corrispondere ad una coppia ordinata di numeri (termini

Подробнее

ALGEBRA LINEARE PARTE II

ALGEBRA LINEARE PARTE II DIEM sez. Matematica Finanziaria Marina Resta Università degli studi di Genova Dicembre 005 Indice PREMESSA INVERSA DI UNA MATRICE DETERMINANTE. DETERMINANTE DI MATRICI ELEMENTARI................. MATRICI

Подробнее

Algebra di Boole Cenni all Algebra di Boole

Algebra di Boole Cenni all Algebra di Boole Algebra di Boole Cenni all Algebra di Boole Introduzione Rappresentazione di una funzione combinatoria Proprietà dell algebra di commutazione Forme canoniche Teorema di espansione di Shannon Versione del

Подробнее

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29 Macchine di Turing Francesco Paoli Istituzioni di logica, 2016-17 Francesco Paoli (Istituzioni di logica, 2016-17) Macchine di Turing 1 / 29 Alan M. Turing (1912-1954) Francesco Paoli (Istituzioni di logica,

Подробнее

Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F

Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F Macchina di Turing Nastro di Input...!!! a b b! b a! testina!!... s r s t q i Unità di Controllo q j Q S / D / F P Definizione Formale Una macchina di Turing deterministica è una sestupla

Подробнее

Espressioni regolari

Espressioni regolari spressioni Regolari Un FA (NFA o DFA) e una macchina a stati finiti che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo (o algebrico) per descrivere un linguaggio regolare.

Подробнее

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)

Подробнее

1 Primitive e integrali indefiniti

1 Primitive e integrali indefiniti Analisi Matematica 2 CORSO DI STUDI IN SMID CORSO DI ANALISI MATEMATICA 2 CAPITOLO 2 CALCOLO INTEGRALE Primitive e integrali indefiniti. Definizione di primitiva e di integrale indefinito Data una funzione

Подробнее

LEZIONE 4. { x + y + z = 1 x y + 2z = 3

LEZIONE 4. { x + y + z = 1 x y + 2z = 3 LEZIONE 4 4.. Operazioni elementari di riga. Abbiamo visto, nella precedente lezione, quanto sia semplice risolvere sistemi di equazioni lineari aventi matrice incompleta fortemente ridotta per righe.

Подробнее

Lezioni del corso di Progetto di Linguaggi e Traduttori

Lezioni del corso di Progetto di Linguaggi e Traduttori Università di Roma La Sapienza corso di laurea in Ingegneria Informatica Lezioni del corso di Progetto di Linguaggi e Traduttori a.a. 2006/2007 Riccardo Rosati Dipartimento di Informatica e Sistemistica

Подробнее

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

Подробнее

2) Codici univocamente decifrabili e codici a prefisso.

2) Codici univocamente decifrabili e codici a prefisso. Argomenti della Lezione ) Codici di sorgente 2) Codici univocamente decifrabili e codici a prefisso. 3) Disuguaglianza di Kraft 4) Primo Teorema di Shannon 5) Codifica di Huffman Codifica di sorgente Il

Подробнее

Appunti di Elettronica I Lezione 3 Risoluzione dei circuiti elettrici; serie e parallelo di bipoli

Appunti di Elettronica I Lezione 3 Risoluzione dei circuiti elettrici; serie e parallelo di bipoli Appunti di Elettronica I Lezione 3 Risoluzione dei circuiti elettrici; serie e parallelo di bipoli Valentino Liberali Dipartimento di Tecnologie dell Informazione Università di Milano, 2603 Crema email:

Подробнее

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}

Подробнее

Il Sistema di numerazione decimale

Il Sistema di numerazione decimale Il Sistema di numerazione decimale Il NUMERO è un oggetto astratto, rappresentato da un simbolo (o cifra) ed è usato per contare e misurare. I numeri usati per contare, 0,1,2,3,4,5,. sono detti NUMERI

Подробнее

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

Подробнее

1. Serie, parallelo e partitori. ES Calcolare la

1. Serie, parallelo e partitori. ES Calcolare la Maffucci: ircuiti in regime stazionario ver-00 Serie, parallelo e partitori S - alcolare la vista ai morsetti - e quella vista ai morsetti -D S alcolare la resistenza uivalente vista ai capi del generatore

Подробнее

Logica proposizionale

Logica proposizionale Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A7_2 V1.1 Logica proposizionale Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale

Подробнее

Traduzione guidata dalla sintassi

Traduzione guidata dalla sintassi Traduzione guidata dalla sintassi Attributi e definizioni guidate dalla sintassi Dipartimento di Matematica e Informatica [email protected] Analisi Semantica Analisi sintattica - output:

Подробнее

Le quattro operazioni fondamentali

Le quattro operazioni fondamentali 1. ADDIZIONE Le quattro operazioni fondamentali Def: Si dice ADDIZIONE l operazione con la quale si calcola la somma; i numeri da addizionare si dicono ADDENDI e il risultato si dice SOMMA o TOTALE. Proprietà:

Подробнее

Funzioni Pari e Dispari

Funzioni Pari e Dispari Una funzione f : R R si dice Funzioni Pari e Dispari PARI: se f( ) = f() R In questo caso il grafico della funzione è simmetrico rispetto all asse DISPARI: se f( ) = f() R In questo caso il grafico della

Подробнее

ELEMENTI di TEORIA degli INSIEMI

ELEMENTI di TEORIA degli INSIEMI ELEMENTI di TEORI degli INSIEMI & 1. Nozioni fondamentali. ssumeremo come primitivi il concetto di insieme e di elementi di un insieme. Nel seguito gli insiemi saranno indicati con lettere maiuscole (,,C,...)

Подробнее