Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Gramticas
Concepto, componentes y estructura
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.
Definicin de Gramtica
Definida por G = (N, T, P, S) donde
N Conjunto finito de smbolos no terminales (Alfabeto) T Conjunto finito de smbolos terminales
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.
Expresiones Regulares Por lo general son representados por medio de letras o palabras en minsculas.
GRAMTICA regular
Estructura, Producciones, Clasificacin, rbol de Derivacin, gramticas ambiguas.
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 Producciones
Correctas
Aa B Aa C
Incorrectas
A aB AB C a DE
D numero
E num . num F aA G AabcD
12
Aa
Lineales a la izquierda
A Ba Aa Donde A y B son NO TERMINALES
Donde a es TERMINAL
13
Gramticas Regulares
Lineales a derecha
Los 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 Izquierda
Los 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 Derivacin
Para 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 Derivacin
El 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
19
Ejemplo
Gramtica S aB B bC Cc
Cadena abc
20
Ejemplo
Gramtica 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
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 Definicin
Los 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
Elementos de Definicin
Los elementos ms comunes utilizados para definir una Expresin Regular son:
Smbolo * + ? () | \ ^ [] $
27
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 Kleene
Tambin 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 Positiva
Se 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
Aparicin
Utiliza 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
Agrupacin
Se 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
Alternativa
Utiliza 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 Especial
Se 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 Caracteres
Se 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 lnea
El 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 palabra
El 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
38
aab
((ab+ba)|baab)*
abba , baab,
39
Ejemplo: Construccin ER
Expresar, 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 ER
Expresar, 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
42
Relacin ER-LR
Expresin Regular Lenguaje {}
0
abc 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
011* 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