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

Documenti analoghi
Quiz sui linguaggi CF

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

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

Definizione di Grammatica

Espressioni Regolari

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

Espressività e limitazioni delle grammatiche regolari

Forma Normale di Chomsky

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

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

Fondamenti di informatica Esercizi Svolti Macchine di Turing. Realizzati da: Roberto Quaranta Matr

GRAMMATICHE DEI LINGUAGGI DI PROGRAMMAZIONE. Cosimo Laneve

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

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

LA SINTASSI DEI LINGUAGGI DI PROGRAMMAZIONE. Ivan Lanese

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

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

Corso di Laurea Magistrale in Ingegneria Informatica A.A Linguaggi Formali e Compilatori. I linguaggi formali. Giacomo PISCITELLI

I metodi formali dell Analisi Lessicale: Le Espressioni Regolar

Grammatiche Parse trees Lezione del 17/10/2012

Linguaggi e Grammatiche Liberi da Contesto

L elaborazione del linguaggio naturale

Le grammatiche formali

LINGUAGGI E GRAMMATICHE FORMALI

STRINGHE di un ALFABETO. Consideriamo un alfabeto di simboli V V è un insieme finito e non vuoto. Alfabeto della lingua inglese I={a,b,c,..

Logica proposizionale

Linguaggi Regolari e Linguaggi Liberi

GRAMMATICA FORMALE. Albero sintattico

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

Grammatiche context-free

Fondamenti di informatica per la sicurezza anno accademico docente: Stefano Ferrari

Espressioni regolari

Pumping lemma per i linguaggi Context-free

Maiuscole e minuscole

Linguaggi Regolari e Linguaggi Liberi

CONTENUTI. Ci proponiamo un ripasso di argomenti sicuramente svolti nelle scuole superiori e quindi noti a tutti. I grado II grado

Corso di Programmazione Linguaggi di Programmazione

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero.

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

Linguaggi formali e compilazione

Le Macchine di Turing

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

Precorso di Analisi Matematica Facoltà d'ingegneria Università del Salento

Linguaggi di Markup. Violetta Lonati. Dipartimento Scienze dell Informazione Università degli Studi di Milano

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Informatica Teorica. linguaggi non contestuali

Università degli studi Roma Tre. linguaggio Java. A cura di A. Orlandini. Linguaggi: Sintassi e Semantica - Il. Il linguaggio Java

Espressioni regolari descrivono i linguaggi regolari. Un FA (NFA o DFA) è un metodo per costruire una macchina che riconosce linguaggi regolari.

Cos è un Calcolatore?

(2) se A A, allora A c A; (3) se {A n } A, allora +

Linguaggi Sintassi e Semantica

Parole note, nuovi significati: linguaggio, determinismo e infinito

Linguaggi formali e compilatori

Costruzione di espressioni regolari 4

Automa deterministico con prospezione 1. < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R. se a Gui(X α) senza spostamento della testina.

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

9. LINGUAGGI FORMALI E GRAMMATICHE DI CHOMSKY

Sviluppi e derivate delle funzioni elementari

Parser Bottom UP. Giuseppe Morelli

Tot

Linguaggi. Rosario Culmone, Luca Tesei. 20/10/2009 UNICAM - p. 1/32

Argomenti trattati. Informazione Codifica Tipo di un dato Rappresentazione dei numeri Rappresentazione dei caratteri e di altre informazioni

Funzione esponenziale Equazioni esponenziali RIPASSO SULLE POTENZE

Linguaggi e tecnologie per il Web

I.4 Rappresentazione dell informazione

Logiche descrittive Le logiche descrittive sono una famiglia di formalismi per la rappresentazione della conoscenza (KR) che descrivono ciò che è

Copyright Esselibri S.p.A.

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini

Presentazioni di gruppi: generatori e relazioni

Proprietà dei linguaggi regolari

B5. Equazioni di primo grado

ESERCIZIARIO SULL'APPLICAZIONE DELLE DERIVATE

Linguaggi, grammatiche, espressioni regolari

RICHIAMI E COMPLEMENTI SU LINGUAGGI FORMALI E AUTOMI

Algoritmi e Principi dell Informatica

Sommario. Linguaggi formali: motivazioni, definizione ed esempi operazioni su parole e linguaggi

Lunghezza media. Teorema Codice D-ario prefisso per v.c. X soddisfa. L H D (X). Uguaglianza vale sse D l i. = p i. . p.1/27

LIMITI. 1. Definizione di limite.

ESERCIZI PROPOSTI. Capitolo 5 MCD(15,5) = 15 5 =3. un unico sottogruppo di ordine d, cioè x 20/d = C d. , x 20/10 = x 2 = C 10. , x 20/4 = x 5 = C 4

Presentazione di gruppi

Introduzione ad alcuni sistemi di logica modale

Esercizi di Algebra 2, C.S. in Matematica, a.a

Introduzione alla codifica binaria

f(x) = Ax + B. + (B x + 1 A

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

" " # " $ $ $ $ % $&%% # $ # #' $" $$ $( $)

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Reti logiche: introduzione

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

PROGRAMMA CONSUNTIVO

Turing, i nastri e le macchine

Capitolo 1 Vettori applicati e geometria dello spazio

Numeri interi (+/-) Alfabeto binario. Modulo e segno

01 - Elementi di Teoria degli Insiemi

Programmazione Lineare Intera. Programmazione Lineare Intera p. 1/4

Linguaggi formali e compilazione

Un po di storia sui linguaggi

Concetti di base dell ICT

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Transcript:

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 esercizi su grammatiche non regolari notazioni sul livello degli esercizi:(*)facile, (**) non difficile (***) media complessità, (****) difficile, (*****) quasi impossibile Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 2

grammatica formale: G =<V T,V N, P, S > dove V T è l insieme dei simboli terminali (alfabeto terminale) V N è l insieme dei simboli non terminali (categorie sintattiche), disgiunto da P è l insieme delle produzioni (regole sintattiche), una relazione binaria di cardinalità finita su: (V T V N )* V N (V T V N )* (V T V N )* notazione: <α,β> P si scrive anche α β S V N è l assioma Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 3

il linguaggio generato da una grammatica G =<V T,V N,P,S>è l insieme delle stringhe di soli simboli terminali ottenibili applicando una sequenza di produzioni a partire dall assioma esempio: sia G tale che V T = {a,b}, V N ={A,S}, produzioni di P: S A A bab A a L(G) = {b n ab n :n 0} (linguaggio generato da G) una qualunque stringa ottenuta da S applicando un numero finito di produzioni è detta forma di frase Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 4

grammatica di tipo 0 (non limitate) α β con α V* V N V*, β V* dove V = (V T V N ) grammatica di tipo 1 (contestuali) α β con α V* V N V*, β V + e α β - ipotesi: ε-produzioni solo sull assioma e con assioma mai a destra grammatiche di tipo 2 (non contestuali) α β con α V N, β V + grammatiche di tipo 3 (regolari) α β con α V N, β (V T V N ) V T Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 5

Esercizio 1(**): si consideri la seguente grammatica G V T = {a,b}, V N = {S, A}, S = assioma (1) S a (2) S aa (3) A a (4) A aa (5) A b (6) A ba svolgere ciascuno dei seguenti punti: a) di che tipo è la grammatica? b) mostrare una derivazione per abba ed una per baab c) qual è il linguaggio generato da G? Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 6

Soluzione: a) regolare b) - derivazione per abba -S 2 aa 6 aba 6 abba 3 abba a - la stringa baab non è generata dalla grammatica c) il linguaggio delle stringhe su {a,b} che iniziano per a a S b (2) A b A (6) (6) A (3) albero di di derivazione Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 7

Esercizio 2(***): si consideri la seguente grammatica G non contestuale V T ={a},v N = {S, A}, S = assioma (1) S AA (2) A AAA (4) A a svolgere ciascuno dei seguenti punti: a) mostrare due diverse derivazioni per aaaaa e due per aaaa b) qual è il linguaggio generato da G? c) esiste una grammatica regolare che genera lo stesso linguaggio? Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 8

Soluzione: a) - non esistono derivazioni per aaaaa - derivazioni per aaaa S 1 AA 2 AAAA 3 aaaa 3 aaaa 3 aaaa 3 aaaa S 1 AA 3 aa 2 aaaa 3 aaaa 3 aaaa 3 aaaa S (1) S (1) AA (2) (3) AA (3) (2) AAA (3) (3) (3) a a AAA (3) (3) (3) a a a a a a Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 9

Soluzione: b) l insieme delle stringhe su {a} di lunghezza non nulla e con un numero pari di a c) una grammatica regolare che genera lo stesso linguaggio è la seguente: V T ={a},v N = {S, A, X}, S = assioma (1) S aa (2) A a (3) A ax (4) X aa Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 10

Esercizio 3(**): si consideri la seguente grammatica G V T = {a, b, c}, V N = {S, X}, S = assioma (1) S X (2) S ε (3) X axa (4) X bxb (5) X c svolgere ciascuno dei seguenti punti: a) di che tipo è la grammatica? b) mostrare alcune stringhe generate dalla grammatica c) qual è il linguaggio generato da G? Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 11

Soluzione: a) non contestuale b) c, aca, abcba, bcb, babaabcbaabab,... esempio: derivazione di abcba : S 1 X 3 axa 4 abxba 5 abcba c) il linguaggio delle stringhe palindrome su {a, b, c} con una ed una sola c al centro, più la stringa vuota Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 12

Esercizio 4(**): si consideri la seguente grammatica G non contestuale V T = {a,b}, V N = {S, A, B}, S = assioma (1) S A (2) S B (3) A a (4) A aa (5) A ba (6) B b (7) B ab (8) B bb svolgere ciascuno dei seguenti punti: a) mostrare una derivazione per abba ed una per baab b) qual è il linguaggio generato da G? Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 13

Esercizio 5(**): si consideri la seguente grammatica G V T = {a,b}, V N = {S, A}, S = assioma (1) S AA (2) A AAA (3) A a (4) A ba (5) A Ab svolgere ciascuno dei seguenti punti: a) di che tipo è la grammatica? b) mostrare alcune derivazione per babbab b) qual è il linguaggio generato da G? Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 14

Esercizio 6(***): si consideri la seguente grammatica G V T = {a,b}, V N = {S, T, A, B}, S = assioma (1) S AT (2) T AT (3) T ABT (4) T ε (5) AB BA (6) BA AB (7) A a (8) B b svolgere ciascuno dei seguenti punti: a) di che tipo è la grammatica? b) verificare che G genera tutte e sole le stringhe su {a,b} tali che il numero di a è maggiore del numero di b Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 15

Grammatiche ed espressioni regolari (esercizi svolti) Esercizio 7(***): sia L il linguaggio descritto dall espressione regolare a (a+b)*b: a) mostrare una grammatica (di qualsiasi tipo) che genera L b) esiste una grammatica regolare che genera L? Soluzione: a) G non contestuale per L V T = {a,b}, V N = {S, X}, S = assioma (1) S axb (2) X ax bx ε Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 16

Grammatiche ed espressioni regolari (esercizi svolti) b) esiste una grammatica regolare per L poiché l espressione che descrive L è regolare; una grammatica regolare per L è la seguente V T = {a,b}, V N = {S, X}, S = assioma (1) S ax (2) X b (3) X ax (4) X bx Esercizio 8 (***): mostrare una grammatica che genera l insieme di tutte le espressioni regolari su {a,b} Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 17

Grammatiche ed espressioni regolari (esercizi svolti) Soluzione: G non contestuale per L V T ={a,b,, +,, *,(,)}, V N = {S}, S = assioma (1) S (S) (2) S a b (3) S S+S S S (4) S S* (5) S nota: G non tiene conto delle precedenze tra operatori Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 18

Grammatiche ed espressioni regolari (esercizi svolti) Esercizio 9(***): qual è il linguaggio generato dalla seguente grammatica? Quali sono i significati dei vari non terminali? V T ={a,b,, +,, *,(,)}, V N = {S, E, T, F, A}, S = assioma (1) S E (2) E T T+T (3) T F F F (4) F (E) A F* (5) A a b Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 19

Grammatiche ed espressioni regolari (esercizi svolti) Soluzione ancora il linguaggio delle espressioni regolari su {a,b}, ma tiene conto delle precedenze tra operatori; esempio di derivazione: (a + b)* (a* + b) E E = espressione F T F T = termine F* (E) F = fattore (E)* (T + T) A = atomo (T +T)* (F + F)* (A + A)* (a + b)* (F + F) (F* + A) (A* + b) (a* + b) Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 20

Grammatiche non regolari (esercizi svolti) Esercizio 10 (***): sia dato il linguaggio L={a n b 2n :n>0} (a) mostrare una grammatica non contestuale che genera L (b) mostrare una grammatica (strettamente) contestuale che genera L Soluzione (a) grammatica non contestuale V T = {a, b}, V N = {S, X}, S = assioma (1) S X (2) X axbb abb Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 21

Grammatiche non regolari (esercizi svolti) (b) grammatica strettamente contestuale (ne esistono di più semplici) V T = {a, b}, V N = {S, X, L, R, A, B}, S = assioma (1) S LR LXR (2) X XX ABB (3) BA AB (4) LA al (5) BR Rb (6) LR abb L = delimitatore sinistro, R = delimitatore destro, X = generatore di sequenze ABB ; nota: la (3) serve a far scorrere le B a destra e le A a sinistra Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 22

Grammatiche non regolari (esercizi svolti) Esercizio 11 (****): sia dato il linguaggio L={1 2n :n 0}; mostrare una grammatica non limitata che genera L Soluzione logica costruttiva si supponga di partire da una forma di frase del tipo LAA...AAR, in cui il numero di A è pari a 2 n ; si vuol ideare un meccanismo che consenta di prendere, ad ogni decisione, due strade distinte: - trasformare tutte le A in 1 ed eliminare L ed R - raddoppiare il numero di A, cioè passare alla forma di frase LAAA...AAAR dove il numero di A è pari a 2 n+1 Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 23

Grammatiche non regolari (esercizi svolti) grammatica non limitata V T = {1}, V N = {S, L, R, A, D, U, X, B}, S = assioma (1) S LAR (2) L U (3) UA 1U (4) UR ε (5) L XD (6) DA AAD (7) DR BR (8) AB BA (9) XB L trasforma le lea in in1 raddoppia le lea Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 24

Grammatiche varie (esercizi da svolgere) Esercizio 12 (***): mostrare una grammatica regolare per ciascuna delle seguenti espressioni regolari a(b+aa)*a (ba)* b* (ab)* Esercizio 13 (***): mostrare una grammatica che genera il linguaggio dei numeri pari in base 3; esiste una grammatica regolare per tale linguaggio? Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 25