gramatica regulares y expresiones regulares

Upload: evander-flores

Post on 07-Jul-2015

968 views

Category:

Documents


1 download

DESCRIPTION

Gramaticas regulares, Expresiones Regulares, operadores de expresiones regulares, relacion gramaticas y expresiones regulares, construccion de gramatica regular a partir de una expresion regular

TRANSCRIPT

Lenguajes Formales y de ProgramacinGramaticas Regulares y Expresiones RegularesEvander Flores ([email protected])

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