El formulario Bakus-Naur se usa para describir la gramática (generalmente de lenguajes de programación). Fue introducido en la década de 1950 por John Backus, el diseñador principal del lenguaje de programación Fortran en IBM.
El propósito del formulario Bakus-Naur es describir un lenguaje de programación de una manera simple y concisa.
La estructura de este formulario es:
< No terminal > -> reemplazo
El reemplazo puede ser cualquier secuencia de cero o más no terminales o terminales.
Las terminales nunca aparecen en el lado izquierdo de una regla. Una vez que llegue a una terminal, no hay nada más con lo que pueda reemplazarla. Aquí hay un ejemplo que muestra cómo derivar una oración siguiendo las reglas de reemplazo:
Oración -> Objeto Verbo Objeto
-> Objeto de verbo sustantivo
-> I Objeto Verbo
-> Me gusta el objeto
-> Me gusta el sustantivo
-> Me gusta Python
Lo importante de una gramática de reemplazo es que podemos describir un lenguaje infinitamente grande con un pequeño conjunto de reglas precisas.
- ¿Cómo puede contribuir la informática a la producción de energía renovable?
- ¿Cuál es el mayor y más grande blog de informática / tecnología en Internet?
- ¿Por qué no hicieron que las computadoras entendieran todos los números decimales, no solo dos?
- ¿Es posible calcular la economía de combustible del automóvil en función de la velocidad? (Estoy haciendo esto para un proyecto de aprendizaje automático).
- ¿Es posible desarrollar aplicaciones a tiempo completo sin un título?
Un ejemplo de Python Grammar para hacer expresiones (la mayoría de los lenguajes de programación siguen este formulario)
Expresión -> Expresión Operador ExpresiónLa expresión no terminal que aparece en el lado izquierdo se puede reemplazar por una expresión, seguida de un operador, seguida de otra expresión. Por ejemplo, 1 + 1 es una Expresión Operador Expresión.
Referencia: nota de clase de la clase de informática de Udacity.