View
971
Download
1
Category
Preview:
DESCRIPTION
Gramaticas regulares, Expresiones Regulares, operadores de expresiones regulares, relacion gramaticas y expresiones regulares, construccion de gramatica regular a partir de una expresion regular
Citation preview
Lenguajes Formales y de ProgramacinGramaticas Regulares y Expresiones RegularesEvander Flores (evanderex@gmail.com)
1
Objetivos Definir que es una gramtica. Identificar los componentes de una gramtica. Determinar la estructura para la construccin de gramticas
regulares. Construir de rboles de derivacin Identificar gramticas ambiguas Definir Expresiones Regulares Reglas de construccin para Expresiones Regulares
2
GramticasConcepto, componentes y estructura
3
Gramtica Sirven para describir como se genera las cadenas del
lenguaje. Se clasifican al igual que los lenguajes segn la Jerarqua de Chomsky como gramticas tipo 0, 1, 2 y 3 Estn construidas a travs de cudruplas.
4
Definicin de GramticaDefinida por G = (N, T, P, S) donde N Conjunto finito de smbolos no terminales (Alfabeto) T Conjunto finito de smbolos terminales
P es un conjunto finito de producciones S Smbolo incial
5
Componentes de una GramticaN Conjunto de No Terminales Son smbolos definidos que representan una expresin del
lenguaje. Por lo general son representados por medio de letras o palabras en MAYUSCULAS.
S Smbolo Inicial Smbolo No Terminal que representa el inicio de la gramtica. Por lo general se utiliza la letra S.
6
Componentes de una GramticaT Conjunto de Terminales Son smbolos que representan a un token de la gramtica. Los tokens son expresiones que se definen por medio de
Expresiones Regulares Por lo general son representados por medio de letras o palabras en minsculas.
7
Componentes de una GramticaP Conjunto de Producciones Es la representacin de una definicin de la gramtica. Utiliza en el lado izquierdo un smbolo No Terminal El lado derecho una secuencia de smbolos terminales y no terminales; tambin puede ser una cadena vaca ()
8
GRAMTICA regularEstructura, Producciones, Clasificacin, rbol de Derivacin, gramticas ambiguas.
9
Gramtica Regular Generan los lenguajes regulares, reconocidos por un
autmata finito. Son las gramticas ms restrictivas. El lado derecho de una produccin es como mnimo un smbolo TERMINAL o NO TERMINAL y del lado izquierdo como mximo uno NO TERMINAL.
10
Gramticas Regulares
Produccin Representada generalmente
Lado Izquierdo::= -> == =
Lado Derecho (Cadena vaca) terminal (uno o ms) No Terminal (uno o ms) Combinacin de terminales y No Terminales.
Smbolo No Terminal
11
Ejemplos de ProduccionesCorrectas Aa B Aa C
Incorrectas A aB AB C a DE
D numero E num . num F aA G AabcD
12
Clasificacin de Gramticas RegularesLas gramticas regulares se dividen dependiendo de la estructura de las producciones, esto depende de la direccin hacia la que se expanden: Lineales a la derecha A aB
Aa
Lineales a la izquierda A Ba Aa Donde A y B son NO TERMINALESDonde a es TERMINAL
13
Gramticas Regulares
Lineales a derechaLos smbolos No Terminales se ubican al lado derecho de la produccin. G1 = ({A, B}, {a}, P1, S1)
S1 S1 aA A aB Aa B aA
14
Gramticas Regulares
Lineales a IzquierdaLos smbolos No Terminales se ubican al lado izquierdo de la produccin. G2 = ({C, D}, {a}, P2, S2)
S2 S2 Ca C Da Ca D Ca
15
rbol de Derivacin Consiste en la esquematizacin de la Gramtica, a travs de
una entrada determinada. Permite identificar la secuencia por la cual una cadena es reconocida por la gramtica. Tambin son llamados rboles sintxis.
16
rbol de DerivacinPara ser un rbol un conjunto de nodos y arcos debe satisfacer ciertas propiedades: hay un nico nodo distinguido, llamado raz (se dibuja en la parte superior) que no tiene arcos incidentes. todo nodo c excepto el nodo raz est conectado con un arco a otro nodo k, llamado el padre de c (c es el hijo de k). El padre de un nodo, se dibuja por encima del nodo. todos los nodos estn conectados al nodo raz mediante un nico camino. los nodos que no tienen hijos se denominan hojas, el resto de los nodos se denominan nodos interiores.17
rbol de DerivacinEl rbol de derivacin tiene las siguientes propiedades: - el nodo raz est rotulado con el smbolo distinguido de la gramtica; - cada hoja corresponde a un smbolo terminal o un smbolo no terminal; - cada nodo interior corresponde a un smbolo no terminal.
18
Construccin El smbolo inicial S es la raz Los nodos internos son smbolos NO Terminales Las hojas son los smbolos terminales. No son rboles binarios, cada nodo representa la secuencia de
cada produccin, independientemente del nmero de smbolos.
19
EjemploGramtica S aB B bC Cc
Cadena abc
20
EjemploGramtica S aB B aBB |b
Cadena aabb
21
Gramticas Ambiguas Una gramtica es ambigua si permite construir dos o ms
22
rboles de derivacin distintos para la misma cadena. Una gramtica en la cual, para toda cadena generada w, todas las derivaciones de w tienen el mismo rbol de derivacin es no ambigua Una gramtica G(N,T,P,S) se considera ambigua, si existen por lo menos dos rboles de derivacin que la representen. Una gramtica es ambigua si por lo menos posee una produccin ambigua. La ambigedad es una propiedad indecidible
Gramticas Ambiguas Aqu hay un ejemplo de este tipo de gramticas, donde se
reconoce la misma entrada a+a+a A A +A |a
23
Expresiones Regulares
24
Expresion Regular Constituyen un mecanismo bastante potente para realizar
manipulaciones de cadenas de texto Representan de forma ms simple un Lenguaje Regular Representan un patrn por medio del cual se construyen palabras. Utiliza caracteres de un alfabeto () definido, para la construccin.
25
Elementos de DefinicinLos elementos ms comunes utilizados para definir una Expresin Regular son:Smbolo * + ? () Significado repeticin 0 o ms veces (Cerradura de Kleene) Repeticin 1 o ms veces (Cerradura Positiva) Aparece 1 vez o ninguna Agrupacin
|\ ^ [] $26
Indica opciones (o lgico)Marca de caracter especial Comienzo de una linea Agrupacin de conjunto de caracteres opcionales Final de lnea
Elementos de DefinicinLos elementos ms comunes utilizados para definir una Expresin Regular son:Smbolo * + ? () | \ ^ [] $27
Ejemplo 1*234 a+bbc 0?11 (abc) (si|no|talvez) \t, \n ^M escrib[aoe] Fin$
Resultado Vale= 1234, 234,111234 Vale= abbc, aabbc, aaabbc Vale= 11, 011 Genera= abc Vale= si, no, talvez Tabulador, fin de lnea Lineas que comienzan con M Vale= escriba, escribo, escribe Palabras que terminan con Fin
Elementos de Definicin
Cerradura de KleeneTambin llamada Cerradura de Estrella se define como:A*= U n0 An
La cadena se forma al realizar 0 o ms concatenaciones de los smbolos o caracteres que aplica. a* = { , a, aa, aaa, aaaa, aaaaa } 0*21 = { 21 , 021, 0021, 00021 }
28
Elementos de Definicin
Cerradura PositivaSe define como: A+ = n>0 An Donde la cadena esta formada por al menos una repeticin de la cadena. a+ = { a, aa, aaa, aaaa, aaaaa} hi+ = { hi, hii, hiii, hiiii } mi+au+ = { miiiiau, miiiauuuuu, miau }
29
Elementos de Definicin
AparicinUtiliza el smbolo ? para indicar si el carcter que lo precede puede aparecer o no dentro de la cadena. a? = { , a } (sub)?marino = { submarino, marino}
30
Elementos de Definicin
AgrupacinSe utilizan los parntesis para agrupar los caracteres del alfabeto que se utilizan.Y la precedencia de los operadores que se utilizan. (bis|tatar)?abuel(o|a) = { abuelo, bisabuelo, tatarabuelo, bisabuela } (0|1)0 = {10 , 00 }
31
Elementos de Definicin
AlternativaUtiliza la barra | para indicar que puede existir alguna alternativa dentro de los smbolos o caracteres. blanco|negro = { blanco , negro } norte|sur|este|oeste = { sur, este, norte} (m|p)adre = { madre, padre }
32
Elementos de Definicin
Caracter EspecialSe utiliza la barra invertida \ para denotar un caracter especial \t describe espacios tabuladores \ describe una comilla \n indica el fin de una lnea \f indica un salto de pagina
33
Elementos de Definicin
Agrupacin de CaracteresSe utilizan los corchetes [ ] para agrupar clases de caracteres, as se define una gama de smbolos relacionados entre s. Utilizando solo uno de ellos. [A-Z] = { A, B, D,Y, M, O, P } [0-9] = dgito del 0 al 9 [0-9]+.[0-9] = nmeros con un decimal.
34
Elementos de Definicin
Comienzo de lneaEl caracter ^ es utilizado para describir una cadena especfica la cual se encontrara en cada inicio de lnea ^usac describe todas las lneas que inician con la palabra usac ^Numero:[0-9]+ lneas que comienzan con la palabra Numero seguida de dos puntos y cualquier grupo de dgitos
35
Elementos de Definicin
Fin de palabraEl caracter $ es utilizado para indicar el fin de una palabra en cualquier cadena z$ palabras que terminan con la letra z [aeiou]$ palabras que terminan en vocal
36
Precedencia El orden de precedencia para los operadores es: Parntesis () Cerraduras Concatenacin .
37
Ejemplo: Generacin de Palabras Sea ER = (ab*) | (abc*) las palabras que genera son: Sea ER = z?x+(z*o)+ las palabras que genera son:
38
Ejemplo: Generacin de PalabrasLas palabras ms cortas que se obtienen de (01+0*) | (10?1) 01 , 11 a(b+c)*(ab)
aab
((ab+ba)|baab)*
abba , baab,
39
Ejemplo: Construccin ERExpresar, mediante una expresin regular, el lenguaje formado por el alfabeto S = {a, b}, donde las palabras inician con a y finalizan siembre con bb
40
Ejemplo: Construccin ERExpresar, mediante una expresin regular, el lenguaje formado por el alfabeto S = {a, b,c}, donde todas las cadenas no tiene ninguna subcadena ac se denota mediante la expresin regular:
41
GRAMTICAS y Expresiones regularRelacin entre GR y ER
42
Relacin ER-LRExpresin Regular Lenguaje {}
0abc 0|1 (1|)001 (1|0)*(0|1)43
{0}{abc} {0,1} {1,e}{001}={1001,001} {1|0}*{0,1}={1110,000,.}
Equivalencia ER Dos o ms expresiones regulares son equivalentes, si se
refieren al mismo lenguaje. ER Equivalente LR
011* 01+
01, 011,0111 0111, 01
44
Ejercicio Escriba una expresin regular para el lenguaje denotado
por el alfabeto S={x, y, z} que reconozca cadenas que empiecen con x y terminen con z pero que no tengan dos y consecutivas:RESPUESTA(una de tantas posibles):x ( y? ( x | z )+ )* y? z
45
Recommended