Examen

Page 1

Materia: Lenguajes y autómatas Fecha: 06/10/2022 Alumno: Sadrac Urai Rodríguezramos Profesor: Sheyla Janett Tapia Garcia GRAMATICA BNF
índice ¿Qué es una gramática BNF?............................................................ 3 Historia................................................................................................ 4 Desarrollo............................................................................................ 5 EJEMPLOS DE NOTACION BNF........................................................ 5 Conclusiones...................................................................................... 7 BIBLIOGRAFIAS ................................................................................. 8

¿Qué es una gramática BNF?

La notación de Backus Naur, también conocida por sus denominaciones inglesas Backus Naur form (BNF), Backus Naur formalism o Backus normal form, es un metalenguaje usado para expresar gramáticas libres de contexto: es decir, una manera formal de describir lenguajes formales.

El BNF se utiliza extensamente como notación para las gramáticas de los lenguajes de programación, de los sistemas de comando y de los protocolos de comunicación, así como una notación para representar partes de las gramáticas de la lengua natural (por ejemplo, el metro en la poesía de Venpa). La mayoría de los libros de textos para la teoría o la semántica del lenguaje de programación documentan el lenguaje de programación en BNF.

Algunas variantes, tales como la Augmented Backus Naur Form (ABNF) y la Extended Backus Naur Form (EBNF), tienen su propia documentación.

Características

• Metalenguaje B.N.F.

Notación para especificar una gramática generativa: define el conjunto de cadenas que son programas del LP sujeto, junto con su estructura sintáctica

Permite describir lenguajes con una sintaxis “independiente del contexto”

• Gramáticas de atributos

Extensión de B.N.F. mediante atributos y reglas de evaluación de dichos atributos.

Permite describir lenguajes con hechos sintácticos “dependientes del contexto”

* símbolos no terminales (uno de ellos distinguido)

• para describir los constructores sintácticos del LP sujeto *símbolos terminales

• para describir los símbolos (texto) del LP sujeto *reglas de producción

• una regla con (alternativas) para cada símb. no terminal

• cada alternativa: cadena de terminales y/o no terminales

Historia

La idea de transcribir la estructura del lenguaje con reglas de reescritura se remonta cuando menos al trabajo del gramático indio Panini (hacia el 460 a. C.), que la utilizó en su descripción de la estructura de palabras del idioma sánscrito (algunos incluso han sugerido renombrar BNF a Forma Panini-Backus). Lingüistas estadounidenses como Leonard Bloomfield y Zellig Harris llevaron esta idea un paso más adelante al tratar de formalizar el lenguaje y su estudio en términos de definiciones formales y procedimientos (1920 1960).

Noam Chomsky, maestro de lingüística de alumnos de teoría de la información del MIT, combinó la lingüística y las matemáticas, tomando esencialmente el formalismo de Axel Thue como la base de su descripción de la sintaxis del lenguaje natural. También introdujo una clara distinción entre reglas generativas (de la gramática libre de contexto) y reglas transformativas (1956).

John Backus, un diseñador de lenguajes de programación de IBM, adoptó las reglas generativas de Chomsky para describir la sintaxis del nuevo lenguaje de programación IAL, conocido en la actualidad como ALGOL 58 (1959), presentando en el primer Congreso de Computación Mundial (World Computer Congress) el artículo «The syntax and semantics of the proposed international algebraic language of the Zurich ACM GAMM Conference».

Peter Naur, en su reporte sobre ALGOL 60 de 1963, identificó la notación de Backus como la Forma Normal de Backus (Backus Normal Form), y la simplificó para usar un conjunto de símbolos menor, pero a sugerencia de Donald Knuth, su apellido fue agregado en reconocimiento a su contribución, reemplazando la palabra «Normal» por Naur, dado que no se trata de una forma normal en ningún sentido, a diferencia, por ejemplo, de la Forma Normal de Chomsky.

Desarrollo

Las gramáticas de tipo 2 (que incluyen a las gramáticas de tipo 3) tienen métodos alternativos útiles para desplegar las producciones. Una alternativa que se encuentra con frecuencia es la notación BNF (forma Backus-Naur). Se sabe que los lados izquierdos de todas las producciones en una gramática de tipo 2 son símbolos no terminales únicos. Para cada uno de tales símbolos w, se combina todas las producciones que tienen a w como lado izquierdo. El símbolo w permanece a la izquierda, y todos los lados derechos asociados con w son enumerados juntos, separados por el símbolo |.

El símbolo relacional se reemplaza por el símbolo: =. Por último, los símbolos no terminales, cuando aparezcan, serán encerrados entre paréntesis agudos < >. Esto tiene la ventaja adicional de que los símbolos no terminales pueden tener espacios dentro de ellos. Así, muestra que la cadena entre paréntesis debe considerarse como una "palabra", no como dos palabras. Es decir, se puede utilizar el espacio como una "letra" conveniente y legítima, en una palabra, mientras que se utilice los paréntesis agudos para delimitar las palabras.

Una especificación de BNF es un sistema de reglas de derivación, escrito como: donde es un no terminal, y la expresión consiste en secuencias de símbolos o secuencias separadas por la barra vertical, '|', indicando una opción, el conjunto es una posiblesubstitución para el símbolo a la izquierda. Los símbolos que nunca aparecen en un lado izquierdo son terminales.

EJEMPLOS DE NOTACION BNF

::= matasímbolo de definición indica que el elemento a su izquierda se puede definir según el esquema de la derecha l metasímbolo de opción indica que puede elegirse uno y solo uno de los elementos separados para este metasímbolo

{} matasímbolo de repetición indican que los elementos incluidos dentro de ellos pueden utilizarse o no

[] metasímbolo de opción indican que los elementos incluidos dentro de ellos pueden utilizarse o no

() metasímbolo de agrupación. agrupan elementos incluidos en su anterior

Conclusiones

En el caso de las gramáticas independientes del contexto es posible optar por un diseño modular en el cual se separa la definición y la ejecución de una determinada estrategia de análisis. En particular, es posible definir un algoritmo de análisis sintáctico como un conjunto de transiciones de un autómata a pila, probablemente no determinista, el cual puede ser interpretado eficientemente mediante las técnicas de tabulación disponibles. Este enfoque presenta ventajas evidentes, entre la cuales cabe citar la simplificación de las pruebas de corrección de los algoritmos, los cuales son mas es fáciles de comprender y, al ser ejecutados en un entorno homogéneo, son fácilmente comparables. En esta memoria hemos adaptado este enfoque a los lenguajes de adjunción de árboles, proporcionando modelos de autómata con los que describir los algoritmos de análisis y técnicas de tabulación con las que pueden ser ejecutados eficientemente.

BIBLIOGRAFIAS https://es.wikipedia.org/wiki/Notación_de_Backus-Naur http://www.sc.ehu.es/jiwnagom/FLP/FLParchivos/SintaxisBNF.pdf https://es.acervolima.com/notacion-bnf-en-el-diseno-delcompilador/

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.
Examen by Fox tblr - Issuu