Está en la página 1de 9

Ciencias de la Computación I

Gramáticas Regulares

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

Gramáticas

• Una gramática tiene un conjunto de reglas para formar correctamente las


oraciones de un lenguaje.

• Por ejemplo, la gramática del español nos permite:

• Identificar cuándo una frase es sintácticamente correcta

“JUAN CORRE RAPIDO”


“RAPIDO JUAN”

• Generar todas las posibles frases sintácticamente correctas

En esta materia estudiaremos:

Gramáticas Formales  GENERADORAS de Lenguajes Formales

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

1
Gramáticas
Oración del lenguaje castellano /*ej. simplificado*/

<oración> se define como <sujeto> <predicado>

<sujeto> se define como <nombre>

<predicado> se define como <verbo> <complemento>


<predicado> se define como <verbo>

<nombre> se define como JUAN ó MARÍA

<verbo> se define como CORRE ó CAMINA

<complemento> se define como RAPIDO ó LENTO

Ejemplos
JUAN CORRE RAPIDO oraciones bien definidas según gramática anterior
MARÍA CAMINA

RAPIDO MARÍA oraciones mal definidas según gramática anterior


LENTO CAMINA
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

Gramáticas
Sentencia asignación de Pascal /*ej. simplificado*/

<asignación> se define como <variable> := <expresión>

<expresión> se define como <número>


<expresión> se define como <variable>

<variable> se define como A o B o C


<número> se define como 0 ó 1 ó … ó 9

Ejemplos

A := B
asignaciones bien definidas según gramática anterior
A := 3

SUMA:= A
3 := A asignaciones mal definidas según gramática anterior

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

2
Gramáticas Formales

Una gramática formal es una cuadrupla G = <N, T, P, S>

N = conjunto finito de símbolos no terminales


NT=
T = conjunto finito de símbolos terminales

S = símbolo distinguido o axioma S  (N  T)

P = conjunto finito de reglas de producción (permiten generar cadenas a partir de S)

→ De acuerdo al formato de las


reglas se pueden definir 4
 = A A  N  {S} tipos de gramáticas y sus
correspondientes lenguajes
 =  , ,   (N  T)*

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

Lenguajes Regulares

SI x L
Cadena x
AUTÓMATA FINITO
NO x L
RECONOCE CADENAS
Lenguaje Regular

x x L
GRAMÁTICA REGULAR

GENERA CADENAS
Lenguaje Regular

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

3
Gramáticas Regulares
Reglas de producción
• S es el símbolo distinguido
1) S → b a partir del cual se comienza a generar
2) S → aA •A es un símbolo No Terminal
3) A → aA • a, b son símbolos del Alfabeto
4) A → b
• → ¨se reemplaza con¨
Derivaciones
Sb b L
S  aA  ab ab  L
S  aA  aaA  aab aab  L L = {an b / n ≥ 0 }
S  aA aaA  aaaA  aaab aaab  L
Se pueden generar infinitas cadenas …..
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

Gramáticas Regulares (Tipo 3)

• Generan los lenguajes regulares (reconocidos por Autómatas Finitos)

• Se definen como una cuadrupla G = <N, T, P, S>


N = conjunto finito de símbolos no terminales
T = conjunto finito de símbolos terminales
S = símbolo distinguido o axioma S  (N  T)
P = conjunto finito de reglas de producción

Formato reglas de producción de Gramáticas Regulares


Lineal a derecha Lineal a izquierda
A → aB A → Ba
A→a A→a
S →  (para generar la cadena vacía) S →  (para generar la cadena vacía)
A  N  {S} aT BN A  N  {S} aT BN

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

4
Gramática Regular (Tipo 3)

Ejemplo 1:

Sea G1 = <{A}, {a, b}, P1 , S > donde P1 = { S → b


S → aA,
A → aA,
A→b}

G1 es una gramática Lineal a Izquierda o Lineal a Derecha?


G1 es una gramática regular lineal a derecha que genera el lenguaje:
L(G1) = {an b / n ≥ 0 }

L(G1) significa lenguaje generado por la gramática G1

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

Gramáticas Regulares

Ejemplo 2 Sea G2 = <{A}, {a, b}, P2 , S > donde P2: = { S → b,


S → Ab,
A → Aa,
A→a}
Derivaciones
Sb b L
S  Ab  ab ab  L
S  Ab  Aab  aab aab  L L = {an b / n ≥ 0}

S  Ab  Aab  Aaab  aaab aaab  L


Se pueden generar infinitas cadenas …..
G2 es una gramática regular lineal a izquierda que genera el lenguaje:
L(G2) = {an b / n ≥ 0 }
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

5
Gramática Regular: Ejemplo
Sea G3 = <{A}, {0, 1}, P, S> donde
Algunos ejemplos de derivaciones
P= { S → , S L
S → 0, S0 0L
S → 1, S1 1L
S → 0A, S  0A  00 00  L
S → 1A, S  0A  01 01 L
A → 0A, S  1A  10 10  L
A → 1A, S  1A  11 11  L
A → 0, S  0A  00A  000 000  L
S  0A  01A  010 010  L
A→1}

El lenguaje generado por la L(G3) = {0,1}*


gramática G3
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

Gramática Regular: Ejemplo

Sea G4= <{A,B}, {a}, P, S> donde P = { S → a,


S → aB,
B → aA,
A → aB,

Algunos ejemplos de derivaciones A→a}

Sa aL

S  aB  aaA  aaa aaa  L

S  aB  aaA  aaaB  aaaaA  aaaaa aaaaa  L

El lenguaje generado por la L(G4) = {a2k+1/ k ≥ 0}


gramática G4
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

6
Gramáticas Regulares (Tipo 3)

Derivación inmediata (lineal a derecha):

   La cadena  se obtiene de la cadena  en un paso usando las


reglas de P. Si  =A y  =  entonces:

A   sii existe en P la regla A →  y   T* A  N  {S}

siendo  = aB o =a aT BN


Cuando A = S puede ser =

Ejemplo Si G = <{A}, {a, b}, P, S> donde P = {S → b,S → aA, A → aA, A→ b }

S  aA  aaA  aaaA  aaab


En un paso se aplicó
A  
la regla A → aA
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

Gramáticas Regulares (Tipo 3)


Derivación: La cadena  se obtiene de la cadena  en cero o más pasos
usando las reglas de P. Se define la clausura reflexiva y transitiva de 
1  2  …  n decimos que 1 
* n para i  (NT)*

Ejemplo
S  aA  aaA  aaaA  aaab * aaab
S
En varios pasos

Lenguaje generado por una gramática regular G = <N, T, P, S>:

L(G) = { x / x  T* y S 
* x}

Es decir, una cadena  L(G) si:


1) La cadena está formada por símbolos terminales únicamente
2) La cadena puede ser derivada a partir de S
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

7
Pasaje de Autómata Finito a Gramática Regular
1) e0 S e0 S, A

Nombrar S si tiene Nombrar S y un no terminal A


sólo arcos salientes si tiene arcos salientes y entrantes
2) ei B al resto de los estados asociar un no terminal

a
3) ei ej agregar la regla B → aC
B C
a
4) ei ej agregar las reglas B → aC
B C B→a

5) e0
agregar la regla S → 

Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

Gramática Regular: Ejemplo

L={an bm/ n, m > 0}


M=<{e0, e1, e2}, {a, b}, , e0 , {e2} >

:
b P ={ S → aA,
a b
e0 e2 A → aA,
e1
A A → bB,
S B
A → b, (e2  F)
B → bB,
B→ b (e2  F)
}
G= <{A,B}, {a, b}, P, S>
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

8
Gramática Regular: Ejemplo
P={ S → aA,
L = {x / x  {a, b, c}* y x termina en b} S → cA,
S → bB,
M = <{e0, e1}, {a, b, c}, , e0 , {e1} >
S →b, (e1  F)

a, c b
A → aA,
: S
b A → cA,
e0 e1 A → bB,
A a, c B A → b, (e1  F)
B → aA,
B → cA,
B → bB,
G= <{A, B}, {a, b, c}, P, S) B→b (e1  F)
}
Ciencias de la Computación I - Filminas de Clase – Facultad Cs. Exactas – UNCPBA – 2023

También podría gustarte