Está en la página 1de 6

Tabla de contenido

GRAMATICAS LIBRES DEL CONTEXTO...............................................................3

Ejemplo..................................................................................................................4

BNF............................................................................................................................5

Ejemplo..................................................................................................................6

Referencias................................................................................................................7
GRAMATICAS LIBRES DEL CONTEXTO
Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas
independientes del contexto, son las que generan los lenguajes libres o
independientes del contexto. Los lenguajes libres del contexto son aquellos que
pueden ser reconocidos por un autómata de pila determinístico o no
determinístico.

 Una gramática libre de contexto (GLC), describe un lenguaje libre de


contexto.
 Son útiles para describir bloques anidados en lenguajes de programación
ya que describen su sintaxis.
 Son llamadas así porque el elemento no terminal del lado derecho se puede
sustituir sin importar el contexto en que este.

Su característica es que piden que solamente exista un no terminal del lado


izquierdo de la producción.
Como toda gramática se definen mediante una cuádrupla G = (N, T, P, S), siendo

 N es un conjunto finito de símbolos no terminales


 T es un conjunto finito de símbolos terminales N ∩ T = ∅ -
 P es un conjunto finito de producciones
 S es el símbolo distinguido o axioma S ∉ (N ∪ T)

En una gramática libre del contexto, cada producción de P tiene la forma

Ejemplo
La siguiente gramática genera las cadenas del lenguaje L1 = {wcwR / w ∈ {a, b}* }
G1 = ({A}, {a, b, c}, P1, S1), y P1 contiene las siguientes producciones

S1 → A

A → aAa

A → bAb

A→c

Ejemplo 2:

La siguiente gramática genera las cadenas del lenguaje L2 = {0i 1i+k 2k 3n+1 / i, k,
n≥0}

Casos Cadenas de L2

sí n, i, k > 0 0i 1i+k 2k 3n+1

sí n=0 y i, k > 0 0i 1i+k 2k 3


sí i=0 y n, k >0 1k 2k 3n+1

sí k=0 y n, i >0 0i 1i 3n+1

sí n, i=0 y k >0 1k 2k 3

si n, k=0 y i >0 0i 1i 3

si i, k =0 y n >0 3n+1

si n,i,k=0 3

G2 = ({A, B, C}, {0, 1, 2, 3}, P2, S2), y P2 contiene las producciones

S2 → ABC B → 1B2

S2 → AC B → 12

S2 → BC C → 3C

S2 → C C→3

A → 0A1

A → 01

BNF
Las gramáticas libres del contexto se escriben, frecuentemente, utilizando una
notación conocida como BNF (Backus-Naur Form). BNF es la técnica más común
para definir la sintaxis de los lenguajes de programación. En esta notación se
deben seguir las siguientes convenciones:

Los no terminales se escriben entre paréntesis angulares < >

Los terminales se representan con cadenas de caracteres sin paréntesis


angulares

El lado izquierdo de cada regla debe tener únicamente un no terminal (ya que es
una gramática libre del contexto)

El símbolo :: =, que se lee “se define como” o “se reescribe como”, se utiliza en
lugar de →
Varias producciones del tipo:

<A> ::= <B1>

<A> ::= <B2>

.
.
<A> ::= <B1>

Se puede escribir como <A> ::= <B1>|<B2>|…|<Bn>

Ejemplo
La siguiente es una definición BNF del lenguaje que consiste de cadenas de
paréntesis anidados:

<cadena_par :: <cadena_par> <paréntesis> | <paréntesis>

<paréntesis> ::=(<cadena_par>) | ( )

Por ejemplo las cadenas ( ) ( ( ) ) y ( ) ( ) ( ) son cadenas válidas. En cambio las


cadenas ( ( ) y ( ) ) ) no pertenecen al lenguaje.
Referencias
Aleteya. (s.f.). Obtenido de
http://aleteya.cs.buap.mx/~jlavalle/automata/5.1%20Lenguajes%20Libres
%20de%20Contexto.pdf

blog. (s.f.). Obtenido de


https://ccc.inaoep.mx/~emorales/Cursos/Automatas/GramsLibresContexto.p
df

UNICEN. (s.f.). Obtenido de


https://users.exa.unicen.edu.ar/catedras/ccomp1/Apunte5.pdf

También podría gustarte