Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy...

54
Lenguajes Formales rafael ramirez [email protected] Ocata 320

Transcript of Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy...

Page 1: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

Lenguajes Formales

rafael [email protected]

Ocata 320

Page 2: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

2

Conceptos centralesUn alfabeto es un conjunto (finito y no vacio) de símbolos.

Σ={0,1}Σ={a,b,…,z}

Una cadena (a veces llamada palabra) es una sequencia (finita) de símbolos de algun alfabeto.

01101 es una cadena del alfabeto Σ={0,1}

La cadena vacia є es la cadena con cero símbolos

La longitud de una cadena es el número de símbolos que contiene| 01101 | = 5| є | = 0

La potencia k de un alfabeto es el conjunto de cadenas con longitud ksi Σ={0,1}, Σ1 ={0,1}, Σ2 ={00,01,10,11}

El conjunto de todas las cadenas sobre un alfabeto se denota Σ*

Page 3: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

3

Conceptos centralesxy denota la concatenacion de las cadenas x e y

si x=barce, y=lona entonces xy=barcelona

Un lenguaje es un conjunto de cadenas escogidasde algun Σ*

el conjunto de cadenas con mismo numero de 0s que de 1s= {є,01,10,0011,0101,1001,…}= {w | w consiste de el mismo numero de 0s que de 1s}

Page 4: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

4

Gramáticas formalesUna gramática formal consiste en:

Un alfabeto ΣUn conjunto de símbolos terminales T ⊆ ΣUn conjunto de reglas de produccionUn símbolo inicial

El lenguaje generado por una gramática G (que se denota porL(G) ) es el conjunto de cadenas sobre Σ que puede ser producido por las reglas de produccion empezado con el simbolo inicial.A Σ − T se le llama el conjunto de simbolos no terminales

Page 5: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

5

Ejemplo 1

Alfabeto: Σ = {0,1,S}

Conjunto de simbolos terminales: T = {0,1}(conjunto de simbolos no terminales: Σ − T = {S} )

Reglas de produccion: S → єS → 0S1

Simbolo inicial: S

Que lenguaje L(G) genera esta gramatica G?

Page 6: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

6

Ejemplo 2

Alfabeto:Σ = conjunto de palabras en español y algunos simbolos no terminalesΣ = {el, la, niño, niña, corre, come, tarta, Oracion, Sujeto, Predicado, Verbo, Articulo, Sustantivo}

Conjunto de simbolos terminales:T = {el, la, niño, niña, corre, come, tarta}

Reglas de produccion: Oracion→ Sujeto PredicadoSujeto → Articulo SustantivoPredicado → Verbo Articulo SustantivoVerbo → corre | comeArticulo → el | laSustantivo → niño | niña | tarta

Simbolo inicial: Oracion

Page 7: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

7

Ejemplo 2

Operador de remplazo ⇒ : remplaza cualquier no terminal en el lado izquierdo de cualquier produccion por el lado derecho de la produccion

Oracion ⇒ Sujeto Predicado Regla 1⇒ Articulo Sustantivo Predicado Regla 2⇒ el Sustantivo Predicado Regla 5... ⇒ el niño come la tarta

A partir de Oracion tambien podemos derivar⇒ el pastel come el niñoLa sintaxis no implica semantica correcta

Page 8: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

8

Derivaciones

Una derivacion es una secuencia de formas sentenciales empezando con el símbolo inicial.

Gramatica: B → 0B | 1B | 0 | 1Derivacion: B ⇒ 0B ⇒ 01B ⇒ 010Cada paso de derivation es la aplicacion de una reglade produccion.

Page 9: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

9

Arboles de parseUn arbol de parse es una estructurasintactica herárquicaLos nodos internos denotan noterminalesLas hojas (nodos externos) denotanterminales.

Gramatica: B → 0B | 1B | 0 | 1Derivacion: B ⇒ 0B ⇒ 01B ⇒ 010A partir de la derivacion podemosobtener el arbol de parse.

Page 10: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

10

Derivaciones – arbol de parseLas derivaciones no necesariamenteson unicas

S → SS | (S) | ()S ⇒ SS ⇒(S)S ⇒(())S ⇒(())()S ⇒ SS ⇒ S() ⇒(S)() ⇒(())()

En este caso tenemos diferentesderivaciones pero obtenemos el mismo arbol de parse

Page 11: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

11

Derivaciones – arbol de parsePero a partir de algunas gramaticas podemos obtener 2 arboles de parsediferentes para la misma cadena: ()()().

Cada arbol de parse corresponde a una unica derivacion:S ⇒ SS ⇒ SSS ⇒()SS ⇒()()S ⇒()()()

Una gramatica es ambigua si alguna cadena tiene 2 arboles de parse distintos.Para entender la semantica de un lenguaje nos gustaria tener gramaticasno ambiguas

Page 12: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

12

PreguntaEs esta gramática ambigua? (intenta construir dos arboles de parse diferentes para una misma cadena)

E → E + EE → E * EE → NN → 1 | 2 | 3 | 4

Page 13: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

13

Respuesta: considera la cadena 2 + 3 * 4

E → E + EE → E * EE → NN → 1 | 2 | 3 | 4

EE

E

+

N *NN

2 3 4

EE

I+ II

23 4

E+ *

Page 14: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

14

Para desambiguarla(Caso 1) + con precedencia sobre *

E → E2 | E2 * EE2 → N | N + E2

1+2*3

<expr>

<expr2> * <expr>

<num> + <expr2>

<num>1

2

<expr2>

<num>

3(1+2)*3

Page 15: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

15

Herarquía de Chomsky

Gramaticas Regulares: (tipo 3)subclase de las que hemos estado viendo (tipo 2)

Las reglas estan restringidas a: A → t N | t donde: N = no terminal, t = terminalEjemplo: B → 0 B | 1 B | 0 | 1

Gramaticas libres de contexto: (tipo 2)Las que hemos estado viendo

Las reglas estan restringidas a: A → αdonde: α = cadena de 0 o mas terminales y no terminalesEjemplo: S → SS | (S) | ()

Page 16: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

16

Herarquía de Chomsky (cont)

Gramaticas sensibles al contexto: (tipo 1)

Reglas: α → β donde | α | ≤ | β | e.d. long. de α ≤ long. de β,

Gramaticas irrestringidas: (tipo 0)

Reglas: α → β. Sin restricciones en α y β.

Page 17: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

17

GrammarV = {…}

Σ = {…}

R = {…}

S = {…}

Cadena19a0c6duw

Tree

DERIVACION

Tree

PARSING

Page 18: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

18

Top Down parsingGramática

N → Int | Real

Int → Digit | Digit Int

Real → Int-part . FractionInt-part → Digit | Int-part DigitFraction → Digit | Digit FractionDigit → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Es “12.34” aceptado por la gramática con N como símboloinicial?

Top-Down Parse => <num>=> <int> (Try first choice)=> <digit> (Try first choice)=> 1 (Backtrack : “2.34” not parsed)

Page 19: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

19

Top Down parsingGramática

N → Int | Real

Int → Digit | Digit Int

Real → Int-part . FractionInt-part → Digit | Int-part DigitFraction → Digit | Digit FractionDigit → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Es “12.34” aceptado por la gramática con N como símboloinicial?

Top-Down Parse => <num>=> <int> (Try first choice)=> <digit><int> (Try second choice)=> 1<int>=> 1<digit> (Try first choice)=> 12 (Backtrack: “.34” not parsed)

Page 20: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

20

Top Down parsingGramática

N → Int | Real

Int → Digit | Digit Int

Real → Int-part . FractionInt-part → Digit | Int-part DigitFraction → Digit | Digit FractionDigit → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Es “12.34” aceptado por la gramática con N como símboloinicial?

Top-Down Parse => <num>=> <real> (Try second choice)=> <int-part>.<fraction>=> …=> 12.34 (success!)

Page 21: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

21

Bottom-up parsingGramática

N → Int | Real

Int → Digit | Digit Int

Real → Int-part . FractionInt-part → Digit | Int-part DigitFraction → Digit | Digit FractionDigit → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Es “12.34” aceptado por la gramática con N como símboloinicial?

Bottom-Up Parse => 12.34=> <digit>2.34=> <int>2.34=> <num>2.34 (Backtrack)

Page 22: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

22

Bottom-up parsingGramática

N → Int | Real

Int → Digit | Digit Int

Real → Int-part . FractionInt-part → Digit | Int-part DigitFraction → Digit | Digit FractionDigit → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Es “12.34” aceptado por la gramática con N como símboloinicial?

Bottom-Up Parse => 12.34=> <digit>2.34=> <digit><digit>.34=> <digit><int>.34=> <int>.34=> <num>.34 (Backtrack)

Page 23: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

23

Bottom-up parsingGramática

N → Int | Real

Int → Digit | Digit Int

Real → Int-part . FractionInt-part → Digit | Int-part DigitFraction → Digit | Digit FractionDigit → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Es “12.34” aceptado por la gramática con N como símboloinicial?

Bottom-Up Parse => 12.34=> …=> <int-part>.34=> …=> <int-part>.<fraction>=> <real>=> <num> (Success!)

Page 24: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

24

Automatas

Automata Finito

Una manera importante de describir los simples pero muy utiles lenguajes regulares

• Un grafo con un numero finito nodos, llamados estados• Los arcos estan etiquetados con uno o mas símbolos de algun alfabeto• Un estado es designado el estado inicial• Algunos estados son finales

El lenguaje del AF es el conjunto de cadenas que contienen los simbolosque en los arcos en un camino desde el estado inicial a algun estado final.

Page 25: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

25

Automatas: ejemplo

inicio h o l aholah ho hol

Page 26: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

26

Automata Finito (formal)

Un automata finito M consiste en:

1. un conjunto finito QM de simbolos (los elementos de QM se llamanlos estados de M);

2. un elemento sM de QM (sM se llama estado inicial de M);

3. un subconjunt AM de QM (los elementos de AM se llaman estados finales o “accepting states” de M);

4. a subconjunto finito TM de { (q, x, r) | q, r en QM y x es una cadena} (los elementos de TM se llaman transiciones de M).

Page 27: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

27

Automata Finito

Ejemplo

1. QM = {A,B,C};

2. sM = A;

3. AM = {A,C};

4. TM = {(A, 1,A), (B, 11,B), (C, 111, C), (A, 0,B), (A, 2,B),(A, 0, C), (A, 2, C), (B, 0, C), (B, 2, C)}.

Page 28: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

28

Definicion: autómata

Un autómata finito consiste en:

Un conjunto finito de estados

Un estado inicial

Un conjunto de estados finales

Una funcion de transicion

Page 29: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

29

Automata FinitoEjemplo

1. QM = {A,B,C};2. sM = A;3. AM = {A,C};4. TM = {(A, 1,A), (B, 11,B), (C, 111, C), (A, 0,B), (A, 2,B),

(A, 0, C), (A, 2, C), (B, 0, C), (B, 2, C)}.

Dibuja la representacion grafica de M

Page 30: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

30

Automata FinitoEjemplo

1. QM = {A,B,C};2. sM = A;3. AM = {A,C};4. TM = {(A, 1,A), (B, 11,B), (C, 111, C), (A, 0,B), (A, 2,B),

(A, 0, C), (A, 2, C), (B, 0, C), (B, 2, C)}.

Page 31: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

31

Automata Finito

Los automatas finitos pueden ser determinaistas o nodeterministicas.

toman cadenas como entradas.

Cuando un automata ejecuta con una entrada dada, empieza en su estado inicial.

Page 32: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

32

Automata Finito

Si, despues de un numero de pasos, el automata1. esta en un estado p, 2. la entrada restante empieza con x, y3. hay una transicion (p, x, q) en el automata,

Entonces el automata puede leer x de su entrada y cambiar al estado q.

Si (p, z, r) es una transicion del automata, y la entrada restante empieza con z, entonces se podria consumir zy cambiar al estado r, etc.

Page 33: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

33

Automata Finito

Si al menos una sequencia de ejecucion consume toda la entrada y llega un estado final, se dice que la entrada es aceptada por el automata. De lo contrario se dice que es rechazada.

El significado del automata es el lenguaje que consiste en todas las cadenas que acepta.

Page 34: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

34

Lenguaje de un autómataEl lenguaje de un autómata finito (AF) es el conjunto de cadenasque el AF acepta:Cual es el lenguage del siguiente automata?

inicio 0q0 q2q1

101

Page 35: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

35

Lenguaje de un autómataEl lenguaje de un autómata finito (AF) es el conjunto de cadenasque el AF acepta:Ej. Considera el siguiente lenguaje:L= { w | w es de la forma XY para algunas cadenas X e Y tal que X consiste en un numero impar de 0´s e Y cualquier numero de 1´s} L es el lenguaje del siguiente autómata:

inicio 0q0 q2q1

101

Page 36: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

36

Autómata finito nodeterminista

Permite a un AF (determinista) tener cero o mas estadossiguientes para un par estado-simbolo.Herramienta importante para diseñar procesadores de lenguajes, p.e. analizadores lexicos.Pero son imaginarios en el sentido de que tienen que ser implementados deterministamente.

Ejemplo: AFN que acepta cadenasde simbols en {1,2,3} tales que el ultimo simbolo ya ha aparecidoantes en la cadena.

Page 37: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

37

Ejemplo

Cual es el lenguage del automata?

Page 38: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

38

Ejemplo

Cual es el lenguage del automata?

Page 39: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

39

Ejemplo

Cual es el lenguage del automata?

Ejercicio: el languaje de todas las cadenas sobre {a,b}

Con un numer par de a’s (encuentra el autómata).

Page 40: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

40

Ejemplo

Que cadena no esta en el lenguaje del automata?Cual es el lenguage del automata?

Kleene’s Thm: Un lenguaje L sobre Σ es regular ssi

existe un automata finito que acepta L.

Page 41: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

Pushdown Automata

Page 42: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

42

Generators vs. Recognizers

For Regular Languages:regular expressions are generatorsFAs are recognizers

For Context-free LanguagesCFGs are generatorsPushdown Automata (PDAs) are recognizers

Page 43: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

43

PDA vs. FA

Add a stackEach transition can specify optional push and pop operations

using an independent alphabetuse Λ (or e) to ignore stack operations

a,e/A means with input ‘a’, pop nothing, push an ‘A’

Usually require an empty stack to accept

in addition to being in an “accept” state

Page 44: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

44

Example: anbn

X- +

+ Y

a,e/A a,e/A

b, A/e

b, A/e

Page 45: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

45

Example: anbn

Every input ‘a’ pushes a ‘A’ on the stackEvery input ‘b’ pops an ‘A’ off the stack

if any other character appears, reject

At end of input, the stack should be empty

else the count was off, and we should reject

Page 46: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

46

Example: PalindromeX

Accepts strings of the form wcwR

Pops the first half onto the stackmiddle delimiter to know when to start comparing in reverse

Page 47: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

47

Palindrome

- +

a,e/a

b,e/b

c,e/e

a,a/e

b,b/e

Page 48: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

48

Example: EvenPalindrome

- +

a,e/a

b,e/b

e,e/e

a,a/e

b,b/e

No delimiter

Page 49: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

49

Non-determinism

Can have e-movesCan have multiple moves for the same inputAs long as an acceptable path exists, the machine accepts the input

Page 50: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

50

CFG => PDA

Has two states:start, accepting

Have an empty move from the startstate to the accepting state that pushes the start non-terminalCycle on the accepting state:

empty moves that replace variables with each of their rulesmoves that consume each terminal

Page 51: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

51

CFG => PDA ExampleS => e | (S) | SS

- +e,e/S

e,S/(S) e,S/SS

e,S/e),)/e(,(/e

Page 52: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

52

Derive (())

Using CFG (do a leftmost-derivation):S => (S) =>((S)) => (())

PDA (non-deterministically)do by hand, showing stack at each step

Page 53: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

53

A DPDA for (…)

- +(,e/R ),R/e

Exercise: accept (( )( ))

Page 54: Lenguajes Formales - Unitat de Coordinació …rramirez/Logica/L07.pdf3 Conceptos centrales xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

54

CFG vs. PDA

Any CFG can be represented by a PDAsome CFGs require non-determinism

unlike NFA’s => FAs => regular expressions

i.e., the languages accepted by DPDAsform a subset of those accepted by NPDAs

Any PDA has a corresponding CFGLots of work to find!!!