GRAMÁTICA REGULAR

7
INGENIERIA EN SISTEMAS Unidad: Lenguajes Formales Tema: "GRAMÁTICAS REGULARESEstudiante: Catalina Malacatus LOJA -ECUADOR 2010 - 2011

Transcript of GRAMÁTICA REGULAR

Page 1: GRAMÁTICA REGULAR

INGENIERIA EN SISTEMAS

Unidad: Lenguajes Formales

Tema: "GRAMÁTICAS REGULARES”

Estudiante: Catalina Malacatus

LOJA -ECUADOR

2010 - 2011

Page 2: GRAMÁTICA REGULAR

UNIVERSIDAD NACIONAL DE LOJA AREA DE LA ENERGÍA LAS INDUSTRIAS Y LOS RECURSOS

NATURALES NO RENOVABLES

Por: Catalina Malacatus Página 2

Gramática

Una gramática G es un cuádruplo (V, , R, S) donde

– V es un alfabeto.

– , el conjunto de los símbolos terminales, es un subconjunto de V.

– R, el conjunto de reglas de transformación o de producción, es un subconjunto de V* ×

V*.

– S, el símbolo inicial, es un elemento de V .

Los elementos de V son llamados variables o símbolos no terminales.

Por lo general las reglas se escriben en lugar de (, ).

Aplicar la regla a una palabra uv produce la palabra uv, por lo que las reglas pueden ser vistas

como reglas de remplazo.

Explicación de los elementos de una gramática

• Símbolos terminales: son elementos del alfabeto que no se pueden transformar, por eso se

llaman terminales. Normalmente se denotan por letras minúsculas.

• Variables o símbolos no terminales: son elementos auxiliares que permiten poner restricciones

sintácticas a un lenguaje. Las variables sí se pueden transformar, utilizando las reglas, en una

cadena de variables y/o terminales. Por lo general se denotan por letras mayúsculas o por la

notación <variable>.

• Reglas: permiten reemplazar variables para generar oraciones válidas de un lenguaje. Puede

haber varias reglas para una misma variable, en este caso y para ahorrar espacio, las distintas

opciones se colocan en una sola regla con los distintos reemplazos separados por |.

• Por ejemplo | | abrevia las tres reglas

• Símbolo inicial: es el símbolo a partir del cual se generan todas las palabras válidas.

Lenguaje generado por una gramática

Definición: Decimos que la cadena w1 deriva en un paso a la cadena w2 (w1 G w2) si y solo si existen

cadenas x, y V* tales que w1 = xuy y w2 = xvy y además existe una regla u v en R. Si no hay lugar a

confusión, se acostumbra omitir el subíndice que indica la gramática G.

Definición: una cadena w V* es derivable a partir de la gramática G si y solo si existe una secuencia de

derivación iniciando en el símbolo inicial y terminando en la cadena

w: S = w1 w2 w3 wn = w. Escribimos si deriva a en 0 o más pasos.

Definición: el lenguaje generado por una gramática G, L(G), es igual al conjunto de las palabras en * (es

decir, consisten de símbolos terminales) derivables a partir de G.

Una gramática describe las reglas sintácticas del lenguaje. Si una palabra no sigue las reglas, entonces no

pertenecen al lenguaje generado por la gramática.

* G

Page 3: GRAMÁTICA REGULAR

UNIVERSIDAD NACIONAL DE LOJA AREA DE LA ENERGÍA LAS INDUSTRIAS Y LOS RECURSOS

NATURALES NO RENOVABLES

Por: Catalina Malacatus Página 3

Ejemplo de Gramática

• G = (V, , R, S)

– V = {a, b, c, S, A, B}

– = {a, b, c}

– R: S AccA A BA | B a | b | c

w1 = abcc L(G) y w2 = acb L(G)

Cadena Regla Derivación

S S AccA S AccA

AccA A BA BAccA

BAccA B a aAccA

aAccA A BA aBAccA

aBAccA B b abAccA

abAccA A abccA

abccA A abcc

Jerarquía de Chomsky

Descripción de las gramáticas

Gramáticas Regulares (tipo 3 o G3): es una gramática formal (N, Σ, P, S) que puede ser clasificada como

regular izquierda o regular derecha. Las gramáticas regulares sólo pueden generar a los lenguajes

regulares de manera similar a los autómatas finitos y las expresiones regulares. Toda gramática regular

es una gramática libre de contexto.

Una gramática regular derecha es aquella cuyas reglas de producción P son de la siguiente forma:

• A → a, Un símbolo terminal seguido de una variable ó

• A → aB, Sólo un símbolo terminal ó

Gramáticas Lenguajes Máquinas que

los aceptan Sin restricción

(tipo 0)

Recursivamente

numerables

Máquinas de Turing

Sensitivas al

contexto (tipo 1)

Sensitivos al

contexto

Autómatas lineales

Libres de contexto

(tipo 2)

Libres de contexto Autómatas de pila

Regulares

(tipo 3)

Regulares Autómatas finitos

deterministas o no

deterministas

Page 4: GRAMÁTICA REGULAR

UNIVERSIDAD NACIONAL DE LOJA AREA DE LA ENERGÍA LAS INDUSTRIAS Y LOS RECURSOS

NATURALES NO RENOVABLES

Por: Catalina Malacatus Página 4

• A → ε, La cadena vacía.

Análogamente, en una gramática regular izquierda, las reglas son de la siguiente forma:

• A → a, Un símbolo terminal seguido de una variable ó

• A → Ba, Sólo un símbolo terminal ó

• A → ε, La cadena vacía.

Resumiendo: El lado izquierdo consiste sólo de una variable, y el lado derecho consiste de:

Un símbolo terminal seguido de una variable ó

Sólo un símbolo terminal ó

La cadena vacía.

Ejemplo: A aB | a |

Gramáticas Libres de Contexto, GLC, (tipo 2 o G2): el conjunto de reglas es un subconjunto finito de (V

) V*, es decir:

El lado izquierdo consiste sólo de una variable.

No hay restricciones para el lado derecho.

Ejemplo: S aSb | ab |

Gramáticas Sensitivas al Contexto (tipo 1 o G1): el conjunto de reglas es un subconjunto finito de V+ × V+,

es decir, las reglas son de la forma A donde , , V* y A V , es decir, A es un símbolo

no terminal. Además, las reglas son no-contractivas, es decir, la longitud del lado izquierdo es menor o

igual a la longitud del lado derecho. Esta propiedad de no-contracción garantiza que un lenguaje

sensitivo al contexto no contiene .

Ejemplos: S abc | aAbc Ab bA Ac Bbcc

bB Bb aB aa | aaA

Gramáticas sin restricción (tipo 0 o G0): el conjunto de reglas es un subconjunto finito de V+ × V*, es

decir, no hay restricciones para las reglas, excepto que el lado izquierdo no es .

Ejemplos: S aSBC | aBC CB BC aB ab

bB bb bC bc cC ccA bc

Page 5: GRAMÁTICA REGULAR

UNIVERSIDAD NACIONAL DE LOJA AREA DE LA ENERGÍA LAS INDUSTRIAS Y LOS RECURSOS

NATURALES NO RENOVABLES

Por: Catalina Malacatus Página 5

Autómatas y gramáticas

Decimos que una gramática regular G es equivalente a un autómata M (G M) si el lenguaje reconocido

por el autómata es igual al lenguaje generado por la gramática, es decir, si L(G) = L(M).

Ejemplo:

Gramática G con V = {a, b, S, A}, = {a, b}, variables = {S, A}, el símbolo inicial es S y las reglas de

producción son S aS | aA A bA | b

G y M son equivalentes, ambos reconocen a+b+.

Conversión de gramáticas regulares a autómatas finitos

Sea G = (V, G, R, S) una gramática regular. Un AFN que reconoce el mismo lenguaje que G es el

autómata M = (K, SM, , s, F) definido por

(V ) {Z} si existe alguna regla A a (A variable y a símbolo terminal)

K =

(V ) (variables) en caso contrario.

El alfabeto del autómata consiste de los símbolos terminales de la gramática, es decir, M = G.

B cuando exista una regla A aB (a símbolo terminal y A, B variables)

(A,a) =

Z cuando exista una regla A a (a símbolo terminal y A variable)

El estado inicial del autómata es el símbolo inicial de la gramática.

{A | A es una regla} {Z} si Z K

F =

{A | A es una regla} en caso contrario

Conversión de gramáticas regulares

• En palabras:

– Asociar a los símbolos no terminales (variables) de la gramática los estados del

autómata.

– Cada regla A bC de la gramática nos define una transición (A, b) = C; A y C son

variables, b es terminal.

– Las reglas A b, en caso que haya, nos definen transiciones (A, b) = Z, donde Z es un

nuevo estado para el que no hay un símbolo no-terminal asociado.

Page 6: GRAMÁTICA REGULAR

UNIVERSIDAD NACIONAL DE LOJA AREA DE LA ENERGÍA LAS INDUSTRIAS Y LOS RECURSOS

NATURALES NO RENOVABLES

Por: Catalina Malacatus Página 6

Ejemplo

• Convertir una gramática regular a un autómata finito.

– S aA

– S bA

– A aB

– A bB

– A a

– B aA

– B bA

Conversión de autómatas finitos a gramáticas regulares

• Asociar a los estados del autómata los símbolos no terminales de la gramática.

• El símbolo inicial de la gramática corresponde al estado inicial del autómata.

• La transición (A, b) = C define la regla A bC.

• En caso de que el estado C en la transición (A, b) = C sea un estado final, entonces añadimos la

regla A b, además de la regla A bC, ya incluida en el paso anterior.

Ejemplo

• Convertir un autómata finito a una gramática regular.

– Q0 aQ1

– Q0 bQ0

– Q1 aQ2

– Q1 bQ0

– Q2 aQ3

– Q2 bQ0

– Q3 aQ3

– Q3 bQ3

– Q0 a

– Q0 b

– Q1 a

– Q1 b

– Q2 b

Page 7: GRAMÁTICA REGULAR

UNIVERSIDAD NACIONAL DE LOJA AREA DE LA ENERGÍA LAS INDUSTRIAS Y LOS RECURSOS

NATURALES NO RENOVABLES

Por: Catalina Malacatus Página 7

Bibliografía:

DICLIB, Gramática regular, [en línea], véase en: http://www.diclib.com/cgi-bin/d1.cgi?l=es&base=es_wiki_10&page=showid&id=15049 [Consultado: Lun 25/Oct/2010]

RESUMENESUNED, Lenguajes Regulares, [en línea], véase en: http://resumenesuned.wordpress. com/2009/09/14/tema-1-lenguajes-regulares/ [Consultado: Lun 25/Oct/2010]

CORONA Franco, Gramática, [en línea], véase en: http://www.google.com.ec/url?q= http://www.rogeliodavila.com/teordelen/tlnotes/doctorcorona/Gramaticas.ppt&sa=U&ei=1cLITMqjJ8SAlAfG1tT2Ag&ved=0CBYQFjAAOAo&usg=AFQjCNGRZQ7LrNUlrSNJXqHk-wRN63K2kA [Consultado: Lun 25/Oct/2010]