Está en la página 1de 20

Gramáticas Libres de

Contexto

November 7, 2023
Agenda
• Introducción • Ejemplos de notación BNF

• Definición de gramáticas libres de contexto • Construcción de gramáticas libres de contexto

• Importancia en las ciencias computacionales • Ejemplo de escritura de gramáticas con


símbolos
• Sintaxis básica
• Derivación de cadenas a partir de gramáticas
• Símbolos terminales y no terminales
• Aplicaciones de las gramáticas libres de
• Reglas de derivación contexto

• Ejemplos de gramáticas libres de contexto • Gramáticas y lenguajes de programación

• Backus-Naur Form (BNF) • Gramáticas y compiladores

• Definición de la notación BNF • Gramáticas y procesamiento de lenguaje natural

• Ventajas de la notación BNF • Limitaciones de las gramáticas libres de


contexto
• Conclusión
Introducción

Definición de gramáticas libres de contexto

• Las gramáticas libres de contexto son un tipo de gramática formal


que describe reglas para generar lenguajes formales.
• Estas gramáticas consisten en un conjunto de símbolos terminales y
no terminales, y reglas de derivación que indican cómo se pueden
reemplazar los símbolos por otros símbolos o cadenas de símbolos.
Importancia en las ciencias
computacionales

● Permiten describir y analizar la sintaxis de lenguajes


de programación y otros sistemas formales.

● Son utilizadas en el diseño y construcción de


compiladores y analizadores sintácticos.

● Facilitan la construcción de lenguajes de


programación y la creación de herramientas de
procesamiento de lenguajes.

● Son fundamentales para la comprensión y estudio de


la teoría de la computación.
Sintaxis básica

Símbolos terminales y no Ejemplos de gramáticas


Reglas de derivación
terminales libres de contexto

Las gramáticas libres Las reglas de Se presentarán


de contexto utilizan derivación definen ejemplos concretos
símbolos terminales y cómo se pueden de gramáticas libres
no terminales para reescribir los símbolos de contexto para
definir reglas de en una gramática libre
derivación. ilustrar su estructura
de contexto. y uso.
Símbolos terminales y no terminales

Símbolos terminales Símbolos no terminales

● Son los elementos finales de una ● Son los elementos que pueden
cadena generada por la ser reemplazados por reglas de
gramática. derivación.

● Representan las palabras o ● Representan categorías


símbolos concretos en el gramaticales o grupos de
lenguaje. símbolos.

● Se denotan con letras minúsculas ● Se denotan con letras mayúsculas


o símbolos especiales. o palabras en cursiva.
Reglas de derivación

Reglas de derivación Ejemplo de regla de derivación


• Las reglas de derivación definen cómo se • S -> aAb
pueden reescribir los símbolos en una
gramática. • Esta regla indica que el símbolo no
terminal S puede ser reescrito como
• Consisten en un símbolo no terminal
la secuencia de símbolos 'aAb'.
seguido de una flecha y una secuencia
de símbolos terminales y no terminales. • En este ejemplo, 'a' y 'b' son
• Las reglas se aplican de manera símbolos terminales, mientras que
recursiva para generar cadenas de 'A' es un símbolo no terminal.
símbolos hasta alcanzar las cadenas
terminales.
Ejemplos de gramáticas libres
de contexto
Ejemplos de gramáticas libres de contexto:

● Gramática para el lenguaje de los palíndromos en el alfabeto {a, b}

● Gramática para el lenguaje de los paréntesis balanceados

● Gramática para el lenguaje de las expresiones aritméticas

● Gramática para el lenguaje de los números primos


Gramática para Expresiones Aritméticas

S -> A | S + A | S - A
A -> B | A * B | A / B
B -> N | ( S )
N -> D | D N
D -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Backus-Naur Form (BNF)
Backus-Naur Form (BNF)

Definición de la notación BNF

• La notación BNF es un formalismo utilizado para describir la


sintaxis de lenguajes de programación.
• Fue desarrollada por John Backus y Peter Naur en la década
de 1950.
• Consiste en reglas de producción que definen cómo se pueden
combinar los símbolos del lenguaje.
Definición de la notación BNF
¿Qué es la notación BNF?

● La notación BNF (Backus-Naur Form) es una


forma de representar gramáticas formales.
● Se utiliza para describir la sintaxis de lenguajes
de programación y otros lenguajes formales.
Ventajas de la notación BNF

Ventajas Más Ventajas

• Simplicidad y claridad: La notación • Abstracción: Permite separar la


BNF es un lenguaje sencillo y fácil de descripción de la sintaxis de un lenguaje
entender, lo que facilita la escritura y de su implementación, lo que facilita la
comprensión de las reglas reutilización y modularidad.
gramaticales. • Compatibilidad: La notación BNF es
ampliamente utilizada y reconocida en el
• Flexibilidad: Permite la expresión de
campo de las ciencias computacionales,
múltiples reglas de derivación y la
lo que la hace compatible con diferentes
especificación de diferentes opciones
herramientas y entornos de desarrollo.
y secuencias.
Ejemplos de notación BNF
Ejemplos de notación BNF
● Ejemplo de notación BNF para una gramática de expresiones aritméticas.

● Ejemplo de notación BNF para una gramática de expresiones booleanas.

● Ejemplo de notación BNF para una gramática de expresiones de asignación.

● Ejemplo de notación BNF para una gramática de expresiones de condición.


BNF para una gramática de Expresiones Aritméticas

<expr> ::= <term> | <expr> "+" <term> | <expr> "-" <term>


<term> ::= <factor> | <term> "*" <factor> | <term> "/" <factor>
<factor> ::= <number> | "(" <expr> ")"
<number> ::= <digit> | <digit> <number>
<digit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
Derivación de cadenas a partir de gramáticas
Proceso de ● La derivación de cadenas es el proceso de generar

derivación secuencias de símbolos a partir de una gramática.

● Se comienza con un símbolo inicial y se aplican las reglas de


derivación para obtener una cadena final.

● Cada paso en la derivación reemplaza un símbolo no


terminal por una secuencia de símbolos terminales y no
terminales.

● El proceso continúa hasta que no haya más símbolos no


terminales en la cadena.
Aplicaciones de las gramáticas libres de contexto
Aplicaciones en la compilación de lenguajes Aplicaciones en el procesamiento de
de programación lenguaje natural

• Las gramáticas libres de contexto son • Las gramáticas libres de contexto se


utilizadas en el análisis sintáctico de los utilizan en el análisis sintáctico de
compiladores para verificar la corrección oraciones y textos en lenguaje natural.
sintáctica de los programas.
• Permiten identificar la estructura
• Permiten definir las reglas de estructura gramatical de las frases y realizar tareas
del lenguaje y generar el árbol de análisis como el análisis de sentimiento, la
sintáctico. traducción automática y la generación de
resúmenes.
• Son utilizadas para generar parsers
automáticos que facilitan la traducción • Son la base de los sistemas de
del código fuente a código de máquina. reconocimiento de voz y de los chatbots.
Gramáticas y lenguajes de programación

Definición Sintaxis básica Backus-Naur Form (BNF)

Las gramáticas libres de Estas gramáticas están La notación BNF es una


contexto son reglas que compuestas por símbolos forma de representar
definen la estructura de un terminales y no terminales. gramáticas libres de
lenguaje. Son usadas en Los terminales representan contexto. Utiliza una
ciencias computacionales elementos concretos, sintaxis basada en reglas y
mientras que los no
para describir la sintaxis símbolos para describir la
terminales representan
de los lenguajes de estructura de un lenguaje
reglas o estructuras
programación. de programación.
generales.
Limitaciones de las gramáticas libres de contexto

Limitaciones Soluciones alternativas


• Las gramáticas libres de contexto no • Para expresar lenguajes más complejos,
pueden expresar ciertos tipos de se pueden utilizar gramáticas sensibles
lenguajes, como los lenguajes que al contexto o gramáticas regulares.
requieren contar o emparejar • La ambigüedad puede ser resuelta
elementos. mediante la introducción de reglas
adicionales o utilizando análisis
• No pueden manejar la ambigüedad en
semántico.
la estructura de un lenguaje.
• Para mejorar la eficiencia del análisis
• La complejidad del análisis sintáctico
sintáctico, se pueden aplicar técnicas
puede ser alta en algunos casos. como el análisis descendente predictivo
o el análisis sintáctico LR.
Conclusión

Puntos clave Resumen

• Las gramáticas libres de contexto son • Las gramáticas libres de contexto


fundamentales en las ciencias son una herramienta poderosa para
computacionales describir la sintaxis de lenguajes
• La notación BNF es una forma común formales
de representar gramáticas libres de • La notación BNF proporciona una
contexto
forma precisa y concisa de
• La construcción de gramáticas libres representar las reglas de una
de contexto permite definir reglas de gramática
derivación y generar cadenas

También podría gustarte