2. Objetivos
• Comprender los conceptos básicos de la
gramática de contexto libre y su relación con la
materia.
• Desarrollar habilidades para el manejo y uso de
los contenidos expuestos.
3. Que es un lenguaje libre de Contexto
Los lenguajes libres de Contexto
hace referencia a los lenguajes de
tipo 2 en la jerarquía de Chomsky.
Es aquel que puede representarse
mediante gramática libre de
contexto y autómatas finitos.
Tienen su aplicación en la teoría
de interpretes y en los
compiladores de lenguajes de
programación, pues estos
lenguajes engloban los
mecanismos de representación
de los lenguajes de
programación desde un punto
de vista sintáctico.
4. Gramática libre de Contexto
Es una gramática formal en la que
cada regla de producción es de la
forma V → w. Donde V es un
símbolo no terminal y w es una
cadena de terminales y/o no
terminales
El término “Libre de Contexto” se refiere
al hecho de que el no terminal V puede
siempre ser sustituido por W sin tener
en cuenta el contexto en el que ocurra.
5. Lenguaje Regular
Lenguaje Regular hace referencia a los lenguajes de
tipo 3 en la jerarquía de Chomsky. Es aquel que puede
representarse mediante gramáticas regulares y
autómatas finitos.
Son los lenguajes formales más simples que
existen. Contienen los mecanismos de
representación más estudiados, su aplicación
práctica está en los interpretes y compiladores,
enfocados especialmente en los formatos de
información como los microcomponentes.
6. Gramática Regular
Estos generan los lenguajes regulares (que son aquellos reconocidos por autómatas
finitos).
Son las gramáticas mas restrictivas.
• El lado derecho de una producción debe contener un símbolo terminal y, como
máximo un símbolo no terminal. Pueden ser de la siguiente manera:
8. Propiedades del lenguaje
libre de contexto
Una de las definiciones
equivalentes de lenguaje libre
de contexto emplea autómatas
no deterministas: que dice que
un lenguaje es libre de
contexto si puede ser aceptado
por ese autómata.
Un lenguaje puede ser
modelado como un conjunto
de todas las secuencias de
terminales aceptadas por la
gramática. Este modelo ayuda
a entender las operaciones de
conjuntos sobre lenguajes.
9. Propiedades del lenguaje
libre de contexto
La unión y concatenación de
los lenguajes libres de
contexto es también libre de
contexto. La intersección no
tiene por que serlo.
El inverso de un lenguaje libre
de contexto es también libre de
contexto, pero el complemento
no tiene que serlo.
10. Propiedades del lenguaje
libre de contexto
Los lenguajes regulares son
libres de contexto porque
pueden ser descritos mediante
una gramática de libre
contexto.
La intersección de un lenguaje
libre de contexto y un lenguaje
regular es siempre libre de
contexto.
11. Propiedades del lenguaje
libre de contexto
Existen gramáticas sensibles
al contexto que no son libres
de contexto.
Para demostrar que un
lenguaje es libre de
contexto, se puede
emplear el Lema del
Bombeo (Explicar) para
lenguajes libres de
contexto.
12. Gramática Libre del Contexto
Estas gramáticas, también conocidas como gramáticas tipo
2 o gramáticas independientes del contexto, son las que
generan los lenguajes libres del contexto.
13. Ambigüedad de Gramática
En Ciencias de computación, una gramática ambigua es de
tipo libre de contexto, en la cual existe una cadena que
puede tener más de una derivación a la izquierda.
Muchos lenguajes admiten solo gramática ambigua.
Cualquier lenguaje no vacío admite una gramática ambigua
al tomar una gramática no ambigua e introducir una regla
duplicada.
Un lenguaje que solo admite gramáticas ambiguas se
conoce como Lenguaje Inherente Ambiguo.
14. Ambigüedad de Gramática
Ejemplo 1 – Lenguaje Trivial: A → A | ε
Una producción puede ser ella misma otra vez, o la cadena vacía.
La cadena vacía tiene derivaciones a la izquierda de longitud 1, 2,
3, y de hecho de cualquier longitud, dependiendo de cuántas
veces la regla A → A sea utilizada.
Ejemplo 2 – Adición y Sustracción:
La gramática libre de contexto S → S + S | S − S |S*S |id es ambigua
dado que hay dos derivaciones a la izquierda para la cadena
15. BNF (Backus-Naur Form)
Es un tipo de notación
frecuentemente utilizada para
escribir gramáticas libres del
contexto.
Es la técnica mas común para
definir sintaxis de los lenguajes
de programación.
16. BNF (Backus-Naur Form)
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 angulare.
• El lado izquierdo de cada regla debe tener únicamente un no
terminal (Ya que es una gramática libre de contexto).
• El símbolo ::=, que se lee “se define como” o “se reescribe como”,
se utiliza en lugar de → .
17. Link de Video
• Acceder al siguiente link para visualizar video:
https://www.youtube.com/watch?v=eHo4Qlqoc3k
18. Sección de Ejercicios
Ejercicio 1 y 2:
• Ejercicio 1: Identificar palabras que pertenecen al conjunto ER.
• Ejercicio 2: Identificar palabras que no pertenecen al conjunto ER.
19. Bibliografia
• (2016). Gramática libre de contexto. 20/01/2017, de Wikipedia Sitio web:
https://es.wikipedia.org/wiki/Gram%C3%A1tica_libre_de_contexto#Propiedad
es_de_los_lenguajes_libres_de_contexto
• unicen. (2015). GRAMATICAS LIBRES DEL CONTEXTO . 20/01/2017, de unicen
Sitio web: http://www.exa.unicen.edu.ar/catedras/ccomp1/Apunte5.pdf
• c. (2016). Notación de Backus-Naur. 19/01/2017, de Notación de Backus-Naur
Sitio web: https://es.wikipedia.org/wiki/Notaci%C3%B3n_de_Backus-Naur
• unicen. (2016). GRAMATICAS REGULARES - EXPRESIONES REGULARES.
27/01/2017, de Unicen Sitio web:
http://www.exa.unicen.edu.ar/catedras/ccomp1/ApunteGRyER.pdf