Вы находитесь на странице: 1из 6

Área de la Energía, las Industrias y los

Recursos Naturales No Renovables


Renovables

Módulo IX
Carrera: Ingeniería en Sistemas

TEMA:
TEMA:
Gramáticas Regulares
Paralelo: “B”

POR: Cristina Carrillo


POR:

PROFESOR::
PROFESOR
Ing.
Ing. Edison Coronel

Loja – Ecuador
2010
2010
GRAMÁTICAS

Una gramática regular es una gramática de contexto libre donde toda producción es
una gramática de contexto libre de una de dos formas:

• 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 uαv produce la palabra uβv, por lo que las reglas
pueden ser vistas como reglas de remplazo.

Importancia de las gramáticas

Son una herramienta muy poderosa para describir y analizar lenguajes.

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.

Ejemplo

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

Descripción de las gramáticas

• Gramáticas Regulares (tipo 3 o G3): el conjunto de reglas es un subconjunto


finito de (V − Σ) × [Σ(V − Σ) ∪ Σ ∪ λ), es decir:
– El lado izquierdo consiste sólo de una variable.
– 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,
contractivas, es decir, la longitud del lado izquierdo es menor
o igual a la longitud del lado derecho. Esta propiedad de no-contracción
no
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 → cc A → bc

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, A Σ = {a, b}, variables = {S, A},
a, b, 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

• 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.

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

BIBLIOGRAFIA

- Gramáticas [Seriada en línea]. Pág.1-2 Disponible en:


URL: http://es.wikipedia.org/wiki/Gram%C3%A1tica_regular.pdf
[Consultado Octubre 27, 2010]-

Вам также может понравиться