viernes, 17 de junio de 2016

Unidad 6.1 - Gramática Libre de Contexto (notación formal de una gramática).


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.


Las Gramáticas Libres de Contexto (Context-Free Languages) o CFL’s jugaron un papel central en el lenguaje natural desde los 50’s y en los compiladores desde los 60’s

Forman la base de la sintaxis BNF (Backus-Naur form), son actualmente importantes para XML y sus DTD’s (document type definition)

Son útiles para describir bloques anidados en lenguajes de programación ya que describen su sintaxis, además, son llamadas así porque el elemento no terminal del lado derecho se puede sustituir sin importar el contexto en que este.
           
Puede ser definida mediante la 4-tupla G = (N, T, P, S), siendo
            - N es un conjunto finito de símbolos no terminales (disjunto de T)
            - T es un conjunto finito de símbolos terminales
            - P es un conjunto finito de producciones o reglas gramaticales, de la forma A à a, donde A es un elemento de N y a es un elemento de (T U N)* (una secuencia posiblemente vacia de terminales y no terminales)
            - S es el símbolo inicial, distinguido o axioma del conjunto N


Ejemplo 1
Una simple gramatica libre de contexto es: SàaSb | ε

Esta gramatica genera el lenguaje no regular {anbn:n > 0}


Ejemplo 2
Gramática libre de contexto para expresiones enteras algebraicas sintácticamente correctas sobre las variables x, y y z:

S à x | y | z | S + S | S – S | S * S | S / S | (S)

Cadena (x + y) *x – z *y / (x + x) valida


Ejemplo 3
Lenguaje consistente en todas las cadenas que se pueden formar con las letras a y b, habiendo un número diferente de una que de otra, seria:

S → U | V
U → TaU | TaT
V → TbV | TbT
T → aTbT | bTaT | ε

T genera todas las cadenas con la misma cantidad de letras a que b, U genera todas las cadenas con más letras a, y V todas las cadenas con más letras b.


Ejemplo 4
Gramática libre de contexto para el lenguaje
{anbmcm+n:n > 0, m > 0}
S → aSc | B
B → bBc | ε


Ejemplo 5
La gramática G = ({E,T,F}, {a,+,*,(,)}, S, P) P:
E→E + T | T
T→T * F | F
F →( E ) | a

Volver a Menu de Contenidos