Cómo lo hace el Analizador Semántico
Visión General
Tal y como se vio en el capítulo anterior, la misión del analizador semántico es realizar comprobaciones estáticas sobre el árbol que recibe. Por tanto, a diferencia de las dos fases anteriores, no crea estructuras nuevas (como sí hacían el analizador léxico al crear los tokens y el sintáctico al crear el árbol). En su lugar, modifica el mismo árbol que recibe.
La forma en la que el analizador semántico realiza dichas comprobaciones sobre un árbol es asociando a ciertos nodos distintas reglas que deben cumplir dichos nodos y/o sus hijos.
Una vez definidas estas reglas se recorre el árbol para comprobar, a medida que se encuentren, si las mismas se cumplen en el árbol actual. Si una sola de ellas no se cumple, la entrada sería inválida.
Planificación
Para mostrar cómo realiza su trabajo un analizador semántico, habría que ver:
- Qué reglas concretas añade el analizador al árbol.
- Cómo se aplican dichas reglas.
Estos pasos, por motivos didácticos, se introducirán en el orden inverso:
- En este tema se verá sólo el punto 2, el cómo se aplican reglas en un árbol. No se van a ver, por tanto, reglas concretas del analizador semántico. Lo que se verá es cómo aplicar reglas genéricas a un árbol sin importar cuáles sean estas. De esta manera, los siguientes capítulos se podrán centrar en explicar sus reglas sin que distraigan estos aspectos.
- En los dos siguientes temas se verá el punto 1, el qué reglas concretas añade el analizador semántico al árbol. De hecho, para simplificar, éste se dividirá en dos fases — cada una de ellas encargándose de un grupo de reglas.
Así que, siguiendo la planificación anterior, se va a ver a continuación cómo se especifican y aplican reglas genéricas a un árbol.