martes, 19 de noviembre de 2024

Diagramas de sintaxis

Tipos de analizadores sintácticos 

Diagramas de sintaxis

5.5 Diagramas de sintaxis

Los diagramas de sintaxis son representaciones gráficas que muestran la estructura sintáctica de una expresión en un lenguaje formal. Cada nodo representa un símbolo terminal o no terminal, y las conexiones entre nodos muestran cómo se combinan los símbolos según las reglas de la gramática.

5.6 Eliminación de la ambigüedad

La eliminación de la ambigüedad es el proceso de modificar una gramática para que cada cadena en el lenguaje tenga una única interpretación. Esto se logra reescribiendo las reglas de producción, introduciendo reglas de precedencia y asociatividad, y factoring las producciones comunes.

5.7 Tipos de analizadores sintácticos

Existen varios tipos de analizadores sintácticos, incluyendo:

  • Analizadores descendentes: Construyen la derivación de la cadena de entrada desde el símbolo inicial hasta los símbolos terminales.

  • Analizadores ascendentes: Construyen la derivación de la cadena de entrada desde los símbolos terminales hasta el símbolo inicial.

  • Analizadores de tabla: Utilizan una tabla de análisis para determinar la estructura sintáctica de la entrada.




5.8 Generación de matriz predictiva (cálculo first y follow)

La matriz predictiva se genera utilizando los cálculos de first y follow. El cálculo first determina el conjunto de símbolos terminales que pueden aparecer al inicio de una cadena derivada de un símbolo no terminal. El cálculo follow determina el conjunto de símbolos terminales que pueden aparecer después de un símbolo no terminal en una derivación.

5.8 Generación de matriz predictiva (cálculo first y follow)

La generación de la matriz predictiva se basa en los conjuntos first y follow para ayudar en el análisis sintáctico:

  • Conjunto First: Para un no terminal AA, el conjunto First(A) es el conjunto de terminales que pueden aparecer al inicio de alguna derivación de AA.

  • Conjunto Follow: Para un no terminal AA, el conjunto Follow(A) es el conjunto de terminales que pueden aparecer inmediatamente a la derecha de AA en alguna derivación.

Cálculo de First

  1. Si XX es un terminal, entonces First(X) es {X}\{X\}.

  2. Si XX es un no terminal y XY1Y2...YnX \rightarrow Y1Y2...Yn es una regla de producción, se agrega First(Y1) a First(X).

  3. Si XεX \rightarrow \varepsilon (producción vacía), se agrega ε\varepsilon a First(X).

Cálculo de Follow

  1. Follow(S) (donde S es el símbolo inicial) contiene el símbolo de fin de cadena (\$).

  2. Si hay una producción AαBβA \rightarrow \alpha B \beta, entonces se agrega First(\beta) - {ε}\{\varepsilon\} a Follow(B).

  3. Si hay una producción AαBA \rightarrow \alpha B o AαBβA \rightarrow \alpha B \beta donde First(\beta) contiene ε\varepsilon, se agrega Follow(A) a Follow(B).

Matriz Predictiva

Una vez calculados los conjuntos First y Follow, se puede construir una matriz predictiva que guía el análisis sintáctico. Cada entrada en la matriz corresponde a una regla de producción y se utiliza para decidir qué producción aplicar basándose en el símbolo actual de entrada y el estado del análisis





No hay comentarios.:

Publicar un comentario

Automata