Parser Bottom UP. Giuseppe Morelli
|
|
- Ugo Nanni
- 7 anni fa
- Visualizzazioni
Transcript
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 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
DettagliLinguaggi e Traduttori: Analisi sintattica
Linguaggi e Traduttori: Analisi sintattica Armando Tacchella Sistemi e Tecnologie per il Ragionamento Automatico (STAR-Lab) Dipartimento di Informatica Sistemistica e Telematica (DIST) Università di Genova
DettagliPumping 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=
DettagliDispensa 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
DettagliMetodo LALR. Tabelle LALR. Metodo LALR. Idea. Idea. Idea. Costruzione delle tabelle LALR
Metodo LALR Tabelle LALR Costruzione delle tabelle LALR Introduciamo l ultimo metodo di costruzione di tabelle per il parsing LR Nome: lookahead-lr abbreviato in LALR Questo metodo è usato spesso dato
DettagliAutoma deterministico con prospezione 1. < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R. se a Gui(X α) senza spostamento della testina.
Automa deterministico con prospezione 1 < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R δ(a, a) = ε se a Gui(X α) senza spostamento della testina con spostamento della testina Grammatica 1S ( S ) 2S [ S ] 3S
DettagliForma 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,
DettagliAnalisi 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
DettagliForme 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.
DettagliLinguaggi 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 (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Grammatiche
DettagliLinguaggi 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
DettagliContenuti 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
DettagliEspressività 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
DettagliDispensa 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
DettagliParser bottom-up. Esempio. V = {S, A, B, C} T = {a, b, d, e} P = { S aa R1 A BaA R2 A e R3 B ac R4 B AdC R5
Parser bottom-up Esempio V = {S, A, B, C} T = {a, b, d, e} P = { S aa R1 A BaA R2 A e R3 B ac R4 B AdC R5 C b R6 Come costruire l albero sintattico di aedbae in modo bottom-up? 1 Esempio aedbae aedbaa
DettagliGrammatiche. 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
DettagliDefinizione 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
DettagliCorso di Linguaggi e Traduttori 1 AA GRAMMATICHE
Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla V, V, P S ( ) N T, dove: V N e l insieme dei simboli non
DettagliPROLOG 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
DettagliGrammatiche 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
Dettagliacuradi 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
DettagliIl 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
DettagliTrattamento 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
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it 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
DettagliCodifica 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
DettagliEsercizi 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
DettagliTRIE (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
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 5 Alberto Ceselli alberto.ceselli@unimi.it Università degli Studi di Milano 12 Marzo 2013 Le funzioni sono oggetti di prima classe in Scheme In Scheme le funzioni
DettagliEsercizi 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
DettagliVerificare 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
DettagliQuiz sui linguaggi CF
Fondamenti dell Informatica 1 semestre Quiz sui linguaggi CF Prof. Giorgio Gambosi a.a. 2014-2015 Problema 1: Si consideri la seguente grammatica context free G, dove S, NP, V P, P P, A sono i simboli
DettagliAnalisi sintattica. Syntax Analysis. albero. sintattico. parser. scanner. Errori sintattici
Analisi sintattica Syntax Analysis albero programma scanner tokens parser sintattico rrori sintattici Un parser deve riconoscere la struttura di una stringa di ingresso, la cui struttura è fornita in termini
Dettagli9. 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
DettagliRappresentazione 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
DettagliVideo 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
DettagliLe 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
DettagliLinguaggi 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
DettagliEsercitazioni di Reti Logiche. Lezione 5
Esercitazioni di Reti Logiche Lezione 5 Circuiti Sequenziali Zeynep KIZILTAN zeynep@cs.unibo.it Argomenti Circuiti sequenziali Flip-flop D, JK Analisi dei circuiti sequenziali Progettazione dei circuiti
DettagliLinguaggi formali e compilazione
Linguaggi formali e compilazione Corso di Laurea in Informatica A.A. 2015/2016 Linguaggi formali e compilazione sul corso Sito web: http://algogroup.unimore.it/people/mauro/dida/2015-2016 / Ricevimento:
DettagliLogica 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
DettagliCapitolo 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
DettagliPrima prova intercorso 29 Novembre 2005
Laboratorio di Algoritmi e Strutture Dati R.Zizza (matr. dispari-dispari) Anno Acc. 2005-06 Prima prova intercorso 29 Novembre 2005 Cognome: Nome: Matricola: Regole del gioco: La soluzione del compito
DettagliLinguaggi 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
DettagliSistemi 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/ lorenzo.pareschi@unife.it Lorenzo Pareschi (Univ. Ferrara)
DettagliESERCIZI 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
DettagliScopo 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
DettagliNovember 13, sta ad indicare che la formula B dipende dalle assunzioni occorrenti nell insieme X.
DEDUZIONE NTURLE November 3, 2006 Le regole di inferenza consistono di regole di introduzione (I) e regole di eliminazione (E) per ogni costante logica e per il simbolo del falso, se occorre nel linguaggio.
DettagliStabilità 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
DettagliCosa è l Informatica?
Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore
DettagliGrammatiche 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,
DettagliSoluzione/* 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,
DettagliInformatica Teorica. linguaggi non contestuali
Informatica Teorica linguaggi non contestuali di tipo 2 context free (CF) 1 linguaggi non contestuali molte frasi in linguaggio naturale hanno una struttura sintattica non contestuale esempio: soggetto
DettagliInformatica 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
DettagliTuring, 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
DettagliFondamenti 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
DettagliMa il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione
Problemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa uello che ci aspettiamo. E facile vedere che il programma Ma il programma in Fig. 8.2 del libro?
DettagliAlgoritmi 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)
Dettagli2. 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à:
DettagliAnalizzatore 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,
DettagliAutomi a pila. Automi a pila
utomi a pila Un automa a pila (PDA) e in pratica un ǫ-nfa con una pila. In una transizione un PDA: 1 Consuma un simbolo di input. 2 Va in un nuovo stato (o rimane dove e ). 3 Rimpiazza il top della pila
DettagliUniversità degli studi di Bergamo. Informatica II. Programmazione Object Oriented Tutorato. Lezione 1. Dott. Marco Guarnieri Dott. Eros Magri
Università degli studi di Bergamo Informatica II Programmazione Object Oriented Tutorato Lezione 1 Dott. Marco Guarnieri Dott. Eros Magri 05.10.11 Informazioni Contatti 0guarnieri.marco0@gmail.com erosmagri@gmail.com
DettagliLinguaggi per il Web
Sapienza Università di Roma Corso di Laurea in Ingegneria Informatica e Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici Linguaggi per il Web a.a. 2014/2015 Riccardo Rosati Dipartimento
DettagliLe 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à:
DettagliFasi 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
DettagliLinguaggi 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
DettagliAritmetica 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
DettagliERRATA 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
DettagliEsercitazioni 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
DettagliCorso 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
DettagliRaggiungibilità, 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)
DettagliIndici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2
INDICI MULTILIVELLO DINAMICI Indici multilivello dinamici (B-alberi e B + -alberi) Gli indici multilivello dinamici (B-alberi e B + -alberi) sono casi speciali di strutture ad albero. Un albero è formato
DettagliIn 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
DettagliCIRCUITI 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
DettagliAlberi 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
DettagliLinguaggi 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
DettagliMoltiplicazione. 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
DettagliITLCC 2006/10/6 19:09 page 7 #3
ITLCC 2006/10/6 19:09 page 7 #3 Capitolo 2 Macchine di Turing SOMMARIO In questo capitolo introdurremo il modello di calcolo proposto dal logico matematico inglese Alan Turing, in un suo famoso articolo
DettagliALGEBRA 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
DettagliAlgebra 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
DettagliMacchine 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,
DettagliEspressioni Regolari
Espressioni Regolari Le espressioni regolari sono costituite dalle stringhe sull alfabeto Σ = Σ {+,,*,(,),φ} ottenute secondo le seguenti regole: 1. φ e ciascun membro di Σ sono Epressioni Regolari 2.
DettagliMacchina 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
DettagliEspressioni 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.
DettagliRappresentazioni 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)
Dettagli1 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
DettagliLEZIONE 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.
DettagliLezioni 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
DettagliLa 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
Dettagli2) 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
DettagliAppunti 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:
DettagliEsercizi 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}
DettagliIl 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
DettagliLinguaggi 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
Dettagli1. 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
DettagliLogica 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
DettagliTraduzione guidata dalla sintassi
Traduzione guidata dalla sintassi Attributi e definizioni guidate dalla sintassi Dipartimento di Matematica e Informatica mariarita.diberardini@unicam.it Analisi Semantica Analisi sintattica - output:
DettagliLe 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à:
DettagliFunzioni 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
DettagliELEMENTI 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,...)
DettagliDefinizioni. Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente: soluzione ottima in un dominio contiguo. Il paradigma greedy
Il paradigma greedy Paolo Camurati, Fulvio Corno, Matteo Sonza Reorda Dip. Automatica e Informatica Politecnico di Torino Definizioni Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente:
Dettagli