¿Dónde puedo obtener material para el aprendizaje EBNF?
-
21-08-2019 - |
Pregunta
Extended Backus-Naur Form: EBNF
Estoy muy nuevo en conceptos de análisis. ¿Dónde puedo conseguir lo suficientemente fácil de leer y seguir material para escribir una gramática para el impulso :: biblioteca de espíritu, que utiliza una gramática similar a EBNF?
Actualmente estoy estudiando EBNF de Wikipedia.
Solución
El artículo de Wikipedia es exacto. Si tiene acceso, sin duda leer artículo original de Wirth en EBNF.
La otra cosa a saber es que EBNF fue diseñado para que sea fácil de escribir a mano analizadores descenso recursivo para los idiomas en los que cada construcción sintáctica ha identificando palabras clave en el inicio. Las llaves se traducen en while
bucles; corchetes (material opcional) se traduce en if
, y las alternativas se traducen en if-then-else
declaraciones o case
. Si usted tiene el lujo de diseñar su idioma esta manera se puede noquear a un analizador rápido y dan buenos mensajes de error.
El único lugar esto se vuelve un poco tedioso es cuando se tiene un lenguaje en el que hay operadores infijos con diferentes niveles de prioridad. Para que desee tener el papel de Dave Hanson compacto descendente recursivo de análisis de las expresiones . Tal vez la serie de informes tecnología de Princeton tiene una versión gratuita, y siempre se puede mirar el código en frontal C de Hanson terminar .
Otros consejos
BNF en sí es simple, pero hay que acostumbrarse a la forma en que piensan los autores de compiladores. No son necesariamente lectura fácil, pero después son notas de la conferencia de la Universidad de Berkeley y Stanford.
Bueno, creo que la Wikipedia es la manera más simple, por dos razones:
- Se establece los puntos más relevantes en el artículo
- Tiene enlaces para la lectura adicional en la parte inferior de la página
También me permito sugerir la lectura de standart BNF sólo para familiarizarse con la idea detrás de él.
Por lo menos yo siempre comienzo con Wikipedia también, y casi siempre ayuda.