Un diagrama de sintaxis es un gráfico dirigido con un borde de entrada y un borde de salida y vértices etiquetados. El diagrama de sintaxis define el lenguaje . La cadena de etiquetas en los vértices de cualquier ruta desde el borde de entrada hasta la salida es la cadena del lenguaje especificado por el diagrama de sintaxis. Entre los bordes de entrada / salida hay bloques de dos tipos: "círculo": define el concepto básico (primario); y "rectángulo" - define un concepto secundario que está definido (es decir, una metavariable). Por tanto, podemos considerar que el diagrama sintáctico es una de las formas de la gramática generativa de los lenguajes autómatas. Los diagramas de sintaxis y los autómatas finitos están íntimamente relacionados: cualquier lenguaje de autómatas está definido por un diagrama sintáctico y viceversa, cualquier diagrama sintáctico puede usarse para construir un autómata finito (generalmente no determinista) que reconoce el mismo lenguaje que define el diagrama.
Habiendo construido un autómata finito de reconocimiento apropiado a partir del diagrama de sintaxis, uno puede implementar este autómata ya sea en hardware o en software.
Así, los diagramas sintácticos pueden servir no solo para generar, sino también para reconocer lenguajes de autómatas.
El diagrama sintáctico le permite representar gráficamente la estructura de una unidad sintáctica. [una]
En los metalenguajes que describen la sintaxis de un lenguaje de programación se utilizan los siguientes conceptos básicos:
Una metavariable denota una construcción de lenguaje definida por la sintaxis. Para registrar metavariables se utilizan principalmente secuencias de palabras en un lenguaje natural (ruso, inglés, etc.) y palabras auxiliares. El carácter de subrayado (_) se utiliza para separar palabras. En los diagramas de sintaxis, las metavariables se encierran entre paréntesis angulares (<>). Una metavariable en un borde de gráfico etiquetado significa que este fragmento de diagrama debe detallarse sustituyendo un diagrama de sintaxis con un nombre correspondiente a esta metavariable.
Ejemplos de escritura de metavariables:
<Para_Operador> <Conjunto_de_tipos> <base_scalar_type>Meta constantes: denota un lexema de lenguaje de programación. En un programa, una metaconstante se corresponde a sí misma. En los diagramas de sintaxis, las metaconstantes se escriben "tal cual".
Ejemplos de meta constantes:
Para Empezar establecerUn metacarácter es un carácter especial que se utiliza para describir la sintaxis de un idioma. Solo hay dos metacaracteres en los diagramas de sintaxis:
o El metacarácter “::=” se utiliza para separar el nombre del diagrama de sintaxis.
o Metacarácter “<>” – utilizado para designar metavariables
El diagrama de sintaxis es un gráfico dirigido con bordes etiquetados. Los bordes se etiquetan mediante metaconstantes y metavariables.
Representación en forma de grafos dirigidos de las principales estructuras:
1. Elección (Alternativa).
Entrada similar en RBNF:
<Letra>|<Guión bajo>.2. Una parte opcional de la construcción (Se repite 1 o 0 veces).
Entrada similar en RBNF:
[";"].3. Repetición del diseño
Entrada similar en RBNF:
<Rango>{","<Rango>}.