Los diagramas sintácticos,
de sintaxis o diagramas del ferrocarril son una forma de representar una
gramática libre de contexto. Representan una alternativa gráfica para la Forma
de Backus-Naur (BNF, por sus siglas en inglés) o la Forma Extendida de
Backus-Naur (EBNF).
Constan de una serie de
cajas o símbolos geométricos conectados por arcos dirigidos. Veamos las reglas
que rigen la construcción de cada grafo:
1. Cada símbolo terminal se representa por su nombre encerrado en un círculo o en una caja de bordes circulares.
1. Cada símbolo terminal se representa por su nombre encerrado en un círculo o en una caja de bordes circulares.
Terminal: Un símbolo es terminal cuando tiene
entidad propia y se describe por sí mismo.
2. Cada símbolo no terminal se
representa por su nombre encerrado en un rectángulo.
No Terminal: Un símbolo es no terminal cuando requiere
una explicación mediante una regla o producción.
3. Para las producciones
que tengan varias alternativas, el grafo resultante será del tipo:
4. Para las producciones
que contengan una serie concatenada de símbolos terminales y/o no terminales,
bastara simplemente con conectar simplemente a continuación del otro grafo de
cada símbolo.
5. Para las producciones
que tengan cero, una o más repeticiones de un símbolo la representación será:
Veamos
la sintaxis de SENTENCIA CONDICIONAL, usando diagramas sintácticos en vez de
BNF.
Con
los grafos o diagramas sintácticos somos capaces de representar la sintaxis de
un lenguaje y podemos utilizarlos en lugar del conjunto de producciones en BNF.
Es más, los diagramas sintácticos son mucho más claros y concisos, facilitando
la comprensión del lenguaje, dada su mejor asimilación. Tiene un inconveniente,
y es la dificultad de representación.
Ejemplo: Diagrama sintáctico
para expresiones aritméticas.