Barra de Navegacion

jueves, 25 de abril de 2013

BNF, ANALISIS SINTACTICO

3.     BNF:
La idea de transcribir la estructura del lenguaje con reglas de reescritura se remontan 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üïstas 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).
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.
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 una metalenguaje usada 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 la computadora, 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.
El  BNF es un metalenguaje muy utilizado para definir la estructura sintáctica de un lenguaje de programación. Pero también podría servir para describir enunciados en español. Usaremos este ejemplo para explicar algunas de las reglas y la terminología de los lenguajes formales. Presentando asi una breve introducción a las ideas de Noam Chomsky, quien intento formalizar los lenguajes naturales. Por ejemplo, un enunciado en español (E) consiste en una "frase nominal" (FN) y una "frase verbal" (FV). En BNF, esto se describiría como: la forma de Backus – Naur fue creada para definir la estructura del lenguaje de programación ALGOL60

4.     Análisis sintáctico:
Se puede describir la sintaxis de las construcciones de los LP por medio de gramáticas independientes del contexto o notación BNF.
Ø  Una gramática da una especificación sintáctica precisa y fácil de entender de un LP
Ø  A partir de algunas clases de gramáticas se puede construir automáticamente un analizador sintáctico eficiente que determine si un programa fuente está sintácticamente bien formado
Ø  Una gramática diseñada adecuadamente imparte una estructura a un lenguaje de programación útil para la traducción de programas fuente a código objeto correcto y para la detección de errores
Los lenguajes evolucionan con el tiempo, adquiriendo nuevas construcciones y realizando tareas adicionales

La función del analizador sintáctico
La principal tarea del analizador sintáctico (o parser) no es comprobar que la sintaxis del programa fuente sea correcta, sino construir una representación interna de ese  programa y, en el caso de que sea un programa incorrecto, dar un mensaje de error.

No hay comentarios:

Publicar un comentario