Lenguajes Formales. rafael ramirez. Ocata 320

Lenguajes Formales rafael ramirez [email protected] Ocata 320 Conceptos centrales „ „ „ „ „ Un alfabeto es un conjunto (finito y no vacio) de s

27 downloads 166 Views 314KB Size

Recommend Stories


2. LENGUAJES NATURALES Y LENGUAJES FORMALES
Capítulo 2. Lenguajes naturales y lenguajes formales Pagina 11 2. LENGUAJES NATURALES Y LENGUAJES FORMALES 2.1 INTRODUCCIÓN Existen dos tipos básico

Teoría de Autómatas y Lenguajes Formales
Teoría de Autómatas y Lenguajes Formales. Ejercicios de Máquinas de Turing   Teoría  de  Autómatas  y   Lenguajes  Formales   Ejercicios  de   Máqu

320
MANUAL DE INSTRUCCIONES USA 9 4 250 / 280 / 300 / 320 18 1 10 11 2 17 13 15 22 8 3 16 19 5 12 21 14 A B 6 7 20 A. Dispositivo seg

Teoría de Autómatas y Lenguajes Formales. Capítulo 1: Introducción. Teoría de Autómatas y Lenguajes formales es un repaso a la informática teórica
Teoría de Autómatas y Lenguajes Formales Capítulo 1: “Introducción” Holger Billhardt [email protected] Introducción  Teoría de Autómatas y L

Story Transcript

Lenguajes Formales rafael ramirez [email protected] Ocata 320

Conceptos centrales „

„

„

„

„

Un 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 k si Σ={0,1}, Σ1 ={0,1}, Σ2 ={00,01,10,11} El conjunto de todas las cadenas sobre un alfabeto se denota Σ* 2

Conceptos centrales „

xy denota la concatenacion de las cadenas x e y si x=barce, y=lona entonces xy=barcelona

„

Un lenguaje es un conjunto de cadenas escogidas de 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}

3

Gramáticas formales Una gramática formal consiste en:

„

„ „ „ „

„

„

Un alfabeto Σ Un conjunto de símbolos terminales T ⊆ Σ Un conjunto de reglas de produccion Un símbolo inicial El lenguaje generado por una gramática G (que se denota por L(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 4

Ejemplo 1 Alfabeto:

Σ = {0,1,S}

Conjunto de simbolos terminales: (conjunto de simbolos no terminales:

T = {0,1} Σ − T = {S} )

„

Reglas de produccion:

S→є S → 0S1

„

Simbolo inicial:

S

„

„

Que lenguaje L(G) genera esta gramatica G? 5

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:

„

Simbolo inicial:

Oracion → Sujeto Predicado Sujeto → Articulo Sustantivo Predicado → Verbo Articulo Sustantivo Verbo → corre | come Articulo → el | la Sustantivo → niño | niña | tarta

Oracion 6

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 ⇒ Articulo Sustantivo Predicado ⇒ el Sustantivo Predicado ... ⇒ el niño come la tarta

„

Regla 1 Regla 2 Regla 5

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

Derivaciones „

„ „ „

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

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

8

Arboles de parse „

„

„

„ „ „

Un arbol de parse es una estructura sintactica herárquica Los nodos internos denotan no terminales Las hojas (nodos externos) denotan terminales. Gramatica: B → 0B | 1B | 0 | 1 Derivacion: B ⇒ 0B ⇒ 01B ⇒ 010 A partir de la derivacion podemos obtener el arbol de parse.

9

Derivaciones – arbol de parse „

„ „ „

„

Las derivaciones no necesariamente son unicas S → SS | (S) | () S ⇒ SS ⇒(S)S ⇒(())S ⇒(())() S ⇒ SS ⇒ S() ⇒(S)() ⇒(())() En este caso tenemos diferentes derivaciones pero obtenemos el mismo arbol de parse

10

Derivaciones – arbol de parse Pero a partir de algunas gramaticas podemos obtener 2 arboles de parse diferentes 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 gramaticas no ambiguas 11

Pregunta „

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

→E+E →E*E →N →1|2|3|4

12

Respuesta: E E E N

considera la cadena 2 + 3 * 4

→E+E →E*E →N →1|2|3|4

E

E E N 2

+ N 3

E *

E I

N 4

2

+

*

E

I

I

3

4 13

Para desambiguarla „

(Caso 1) + con precedencia sobre * E → E2 | E2 * E E2 → N | N + E2

1+2*3

1

(1+2)*3

+

*



2

3

14

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 = terminal Ejemplo: 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 terminales Ejemplo: S → SS | (S) | ()

15

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 β. 16

DERIVACION Grammar

Tree

V = {…}

Cadena 19a0c6duw

Σ = {…} R = {…} S = {…}

PARSING

Tree 17

Top Down parsing „

Gramática →

N

→ → Real Int-part → Fraction → Digit → Es “12.34” aceptado inicial? Int

„

Top-Down Parse

=> => => =>

1

Int | Real Digit | Digit Int Int-part . Fraction Digit | Int-part Digit Digit | Digit Fraction 0|1|2|3|4|5|6|7|8|9

por la gramática con N como símbolo

(Try first choice) (Try first choice) (Backtrack : “2.34” not parsed)

18

Top Down parsing „

Gramática →

N

→ → Real Int-part → Fraction → Digit → Es “12.34” aceptado inicial? Int

„

Top-Down Parse

=> => => => => =>

Int | Real Digit | Digit Int Int-part . Fraction Digit | Int-part Digit Digit | Digit Fraction 0|1|2|3|4|5|6|7|8|9

por la gramática con N como símbolo

1 1 12

(Try first choice) (Try second choice) (Try first choice) (Backtrack: “.34” not parsed) 19

Top Down parsing „

Gramática →

N

→ → Real Int-part → Fraction → Digit → Es “12.34” aceptado inicial? Int

„

Top-Down Parse

=> => => => =>

Int | Real Digit | Digit Int Int-part . Fraction Digit | Int-part Digit Digit | Digit Fraction 0|1|2|3|4|5|6|7|8|9

por la gramática con N como símbolo

. … 12.34

(Try second choice) (success!)

20

Bottom-up parsing „

Gramática →

N

→ → Real Int-part → Fraction → Digit → Es “12.34” aceptado inicial? Int

„

Bottom-Up Parse

=> => => =>

Int | Real Digit | Digit Int Int-part . Fraction Digit | Int-part Digit Digit | Digit Fraction 0|1|2|3|4|5|6|7|8|9

por la gramática con N como símbolo

12.34 2.34 2.34 2.34

(Backtrack)

21

Bottom-up parsing „

Gramática →

N

→ → Real Int-part → Fraction → Digit → Es “12.34” aceptado inicial? Int

„

Bottom-Up Parse

=> => => => => =>

Int | Real Digit | Digit Int Int-part . Fraction Digit | Int-part Digit Digit | Digit Fraction 0|1|2|3|4|5|6|7|8|9

por la gramática con N como símbolo

12.34 2.34 .34 .34 .34 .34

(Backtrack) 22

Bottom-up parsing „

Gramática →

N

→ → Real Int-part → Fraction → Digit → Es “12.34” aceptado inicial? Int

„

Bottom-Up Parse

=> => => => => => =>

Int | Real Digit | Digit Int Int-part . Fraction Digit | Int-part Digit Digit | Digit Fraction 0|1|2|3|4|5|6|7|8|9

por la gramática con N como símbolo

12.34 … .34 … .

(Success!) 23

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 simbolos que en los arcos en un camino desde el estado inicial a algun estado final.

24

Automatas: ejemplo

inicio

h

h

o

ho

l

hol

a

hola

25

Automata Finito

(formal)

Un automata finito M consiste en: 1. un conjunto finito QM de simbolos (los elementos de QM se llaman los 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).

26

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)}.

27

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

28

Automata Finito Ejemplo 1. 2. 3. 4.

QM = {A,B,C}; sM = A; AM = {A,C}; 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

29

Automata Finito Ejemplo 1. 2. 3. 4.

QM = {A,B,C}; sM = A; AM = {A,C}; 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)}.

30

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.

31

Automata Finito Si, 1. 2. 3.

despues de un numero de pasos, el automata esta en un estado p, la entrada restante empieza con x, y 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 z y cambiar al estado r, etc.

32

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.

33

Lenguaje de un autómata „

„

El lenguaje de un autómata finito (AF) es el conjunto de cadenas que el AF acepta: Cual es el lenguage del siguiente automata?

inicio

0 q0

0

q1

1 1

q2

34

Lenguaje de un autómata „

„

„

El lenguaje de un autómata finito (AF) es el conjunto de cadenas que 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

0 q0

0

q1

1 1

q2 35

Autómata finito nodeterminista „

„

„

Permite a un AF (determinista) tener cero o mas estados siguientes 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 cadenas de simbols en {1,2,3} tales que el ultimo simbolo ya ha aparecido antes en la cadena.

36

Ejemplo

Cual es el lenguage del automata?

37

Ejemplo

Cual es el lenguage del automata?

38

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). 39

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. 40

Pushdown Automata

Generators vs. Recognizers „

For Regular Languages: „ „

„

regular expressions are generators FAs are recognizers

For Context-free Languages „ „

CFGs are generators Pushdown Automata (PDAs) are recognizers

42

PDA vs. FA „ „

Add a stack Each transition can specify optional push and pop operations „ „

using an independent alphabet use Λ (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

43

Example:

-+

n n ab

a,e/A

X

a,e/A

b, A/e

+Y b, A/e

44

Example: „ „

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

„

n n ab

if any other character appears, reject

At end of input, the stack should be empty „

else the count was off, and we should reject 45

Example: PalindromeX „ „ „

Accepts strings of the form wcwR Pops the first half onto the stack middle delimiter to know when to start comparing in reverse

46

Palindrome

a,e/a b,e/b

a,a/e c,e/e

+ b,b/e

47

Example: EvenPalindrome

a,e/a b,e/b

a,a/e e,e/e

+ b,b/e

No delimiter

48

Non-determinism „ „

„

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

49

CFG => PDA „

Has two states: „

„

„

start, accepting

Have an empty move from the start state to the accepting state that pushes the start non-terminal Cycle on the accepting state: „

„

empty moves that replace variables with each of their rules moves that consume each terminal 50

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

e,S/(S) -

e,e/S

e,S/SS +

(,(/e

),)/e

e,S/e

51

Derive (()) „

Using CFG (do a leftmost-derivation): „

„

S => (S) =>((S)) => (())

PDA (non-deterministically) „

do by hand, showing stack at each step

52

A DPDA for (…)

(,e/R

-+

),R/e

Exercise: accept (( )( ))

53

CFG vs. PDA „

Any CFG can be represented by a PDA „

some CFGs require non-determinism „

„

„

unlike NFA’s => FAs => regular expressions

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

Any PDA has a corresponding CFG „

Lots of work to find!!!

54

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.