Lenguajes Formales - Unitat de Coordinació rramirez/Logica/L07.pdf3 Conceptos centrales xy denota...
date post
08-Jun-2018Category
Documents
view
212download
0
Embed Size (px)
Transcript of Lenguajes Formales - Unitat de Coordinació rramirez/Logica/L07.pdf3 Conceptos centrales xy denota...
Lenguajes Formales
rafael ramirezrafael@iua.upf.es
Ocata 320
2
Conceptos centralesUn alfabeto es un conjunto (finito y no vacio) de smbolos.
={0,1}={a,b,,z}
Una cadena (a veces llamada palabra) es una sequencia (finita) de smbolos de algun alfabeto.
01101 es una cadena del alfabeto ={0,1}
La cadena vacia es la cadena con cero smbolos
La longitud de una cadena es el nmero de smbolos 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 *
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}
4
Gramticas formalesUna gramtica formal consiste en:
Un alfabeto Un conjunto de smbolos terminales T Un conjunto de reglas de produccionUn smbolo inicial
El lenguaje generado por una gramtica 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
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?
6
Ejemplo 2
Alfabeto: = conjunto de palabras en espaol y algunos simbolos no terminales = {el, la, nio, nia, corre, come, tarta, Oracion, Sujeto, Predicado, Verbo, Articulo, Sustantivo}
Conjunto de simbolos terminales:T = {el, la, nio, nia, corre, come, tarta}
Reglas de produccion: Oracion Sujeto PredicadoSujeto Articulo SustantivoPredicado Verbo Articulo SustantivoVerbo corre | comeArticulo el | laSustantivo nio | nia | tarta
Simbolo inicial: Oracion
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 nio come la tarta
A partir de Oracion tambien podemos derivar el pastel come el nioLa sintaxis no implica semantica correcta
8
Derivaciones
Una derivacion es una secuencia de formas sentenciales empezando con el smbolo inicial.
Gramatica: B 0B | 1B | 0 | 1Derivacion: B 0B 01B 010Cada paso de derivation es la aplicacion de una reglade produccion.
9
Arboles de parseUn arbol de parse es una estructurasintactica herrquicaLos 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.
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
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
12
PreguntaEs esta gramtica ambigua? (intenta construir dos arboles de parse diferentes para una misma cadena)
E E + EE E * EE NN 1 | 2 | 3 | 4
13
Respuesta: considera la cadena 2 + 3 * 4E E + EE E * EE NN 1 | 2 | 3 | 4
EE
E
+
N *NN
2 3 4
EE
I+ I
I
23 4
E+ *
14
Para desambiguarla(Caso 1) + con precedencia sobre *
E E2 | E2 * EE2 N | N + E2
1+2*3
*
+
1
2
3(1+2)*3
15
Herarqua 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) | ()
16
Herarqua 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 .
17
GrammarV = {}
= {}
R = {}
S = {}
Cadena19a0c6duw
Tree
DERIVACION
Tree
PARSING
18
Top Down parsingGramtica
N Int | RealInt Digit | Digit IntReal Int-part . FractionInt-part Digit | Int-part DigitFraction Digit | Digit FractionDigit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9Es 12.34 aceptado por la gramtica con N como smboloinicial?
Top-Down Parse => => (Try first choice)=> (Try first choice)=> 1 (Backtrack : 2.34 not parsed)
19
Top Down parsingGramtica
N Int | RealInt Digit | Digit IntReal Int-part . FractionInt-part Digit | Int-part DigitFraction Digit | Digit FractionDigit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9Es 12.34 aceptado por la gramtica con N como smboloinicial?
Top-Down Parse => => (Try first choice)=> (Try second choice)=> 1=> 1 (Try first choice)=> 12 (Backtrack: .34 not parsed)
20
Top Down parsingGramtica
N Int | RealInt Digit | Digit IntReal Int-part . FractionInt-part Digit | Int-part DigitFraction Digit | Digit FractionDigit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9Es 12.34 aceptado por la gramtica con N como smboloinicial?
Top-Down Parse => => (Try second choice)=> .=> => 12.34 (success!)
21
Bottom-up parsingGramtica
N Int | RealInt Digit | Digit IntReal Int-part . FractionInt-part Digit | Int-part DigitFraction Digit | Digit FractionDigit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9Es 12.34 aceptado por la gramtica con N como smboloinicial?
Bottom-Up Parse => 12.34=> 2.34=> 2.34=> 2.34 (Backtrack)
22
Bottom-up parsingGramtica
N Int | RealInt Digit | Digit IntReal Int-part . FractionInt-part Digit | Int-part DigitFraction Digit | Digit FractionDigit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9Es 12.34 aceptado por la gramtica con N como smboloinicial?
Bottom-Up Parse => 12.34=> 2.34=> .34=> .34=> .34=> .34 (Backtrack)
23
Bottom-up parsingGramtica
N Int | RealInt Digit | Digit IntReal Int-part . FractionInt-part Digit | Int-part DigitFraction Digit | Digit FractionDigit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9Es 12.34 aceptado por la gramtica con N como smboloinicial?
Bottom-Up Parse => 12.34=> => .34=> => .=> => (Success!)
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 smbolos 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.
25
Automatas: ejemplo
inicio h o l aholah ho hol
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).
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)}.
28
Definicion: autmata
Un autmata finito consiste en:
Un conjunto finito de estados
Un estado inicial
Un conjunto de estados finales
Una funcion de transicion
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
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)}.
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.
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,
Recommended