
- Compilador - Inicio
- Compilador - Descripción General
- Compilador - Arquitectura
- Compilador - las Fases del Compilador
- Compilador - Análisis Léxico
- Compilador - Expresiones Regulares
- Compilador - Autómatas Finitos
- Compilador - Sintaxis Anã¡lisis
- Compilador - Tipos de Análisis
- Compilador - Analizador Descendente
- Compilador - Analizador Ascendente
- Compilador - Recuperación de Errores
- Compilador - Análisis Semántico
- Compilador - Entorno de Ejecución en Tiempo Real
- Compilador - Tabla de Símbolos
- Compiler - Intermediate Code
- Compilador - Generación de Código
- Compilador - Optimización de Código
Compilador Diseo - Anlisis Semntico
Hemos aprendido cmo analizar un analizador construcciones rboles en la sintaxis fase de anlisis. La llanura de anlisis rbol construido en la fase en que no es, por lo general, de uso de un compilador, ya que no llevan ningn tipo de informacin de cmo evaluar el rbol. La produccin libre de contexto gramtica, lo que hace que las reglas del lenguaje, no alojar cmo interpretarlos.
Por ejemplo
E E + T
La CFG produccin no tiene regla semntica asociada a la misma, y no puede ayudar en la realizacin de cualquier sentido de la produccin.
Semntica
Semntica de un lenguaje dar sentido a sus construcciones, como los tokens estructura y sintaxis. Semntica ayudan a interpretar los smbolos, sus tipos y sus relaciones con los dems. Anlisis semntico los jueces si la sintaxis estructura construida en el programa de origen se deriva el significado o no.
CFG + semantic rules = Syntax Directed Definitions
Por ejemplo:
int a = value;
No debe emitir un error lxico y la sintaxis en fase de anlisis, ya que es lxico y estructuralmente correcto, pero se debe generar un error semntico como del tipo de asignacin es diferente. Estas normas estn definidas por la gramtica de la lengua y evaluado en anlisis semntico. Las siguientes tareas deben realizarse en anlisis semntico:
- Resolucin de mbito
- Comprobacin de tipos
- Matriz de control
Errores semnticos
Hemos mencionado algunos de los errores que la semntica analizador semntico se espera para reconocer:
- No coinciden los tipos
- Variable no declarada
- Identificador reservado uso indebido.
- Declaracin de variables mltiples en un mbito.
- Acceder a una variable fuera de alcance.
- Parmetro formal y real no coincide.
Gramtica Atributo
Atributo gramtica es una forma especial de libres de contexto gramtica donde algunas de las informaciones adicionales (atributos) se aade a una o ms de sus terminales con el fin de proporcionar informacin sensible al contexto. Cada atributo tiene bien definido el dominio de los valores, como integer, float, caracteres, cadenas y expresiones.
Atributo gramtica es un medio para proporcionar semntica en el contexto de libre gramtica y puede ayudar a especificar la sintaxis y la semntica de un lenguaje de programacin. Atributo gramtica (cuando se considera como un rbol de anlisis) puede pasar valores o informacin entre los nodos de un rbol.
Ejemplo:
E E + T { E.value = E.value + T.value }
La parte derecha de la CFG contiene la semntica las normas que especifican el modo en que la gramtica debe ser interpretado. Aqu, los valores de las terminales E y T se suman y el resultado se copian en el no-terminal E.
Semntica atributos pueden ser asignados a sus valores de su dominio en el momento de anlisis y evaluacin en el momento de la cesin o condiciones. Sobre la base de la forma los atributos obtienen sus valores, que pueden dividirse en dos categoras: atributos sintetizados y atributos heredados.
Atributos sintetizados
Estos atributos obtener los valores de los atributos de sus nodos secundarios. Para ilustrar, asumir las siguientes producciones:
S ABC
Si S es tomar los valores de sus nodos secundarios (A,B,C), entonces se dice que es un atributo sintetizado, como los valores de ABC se sintetizan para S.
Como en nuestro ejemplo anterior (E E + T), el nodo padre E obtiene su valor de su nodo hijo. Sintetiza los atributos nunca tomar valores entre sus nodos padres o cualquier nodos relacionados.
Atributos heredados
A diferencia de los atributos sintetizados, atributos heredados puede tomar valores entre padres y/o hermanos. Tal como se muestra en la siguiente produccin,
S ABC
Puede obtener los valores de S, B y C. B puede tomar valores de S, A, y C. Asimismo, C puede tomar valores de S, A y B.
Expansin: se produce cuando un no-terminal se ha ampliado a los terminales, como por una regla gramatical

Reduccin: Cuando un terminal se reduce a su correspondiente no-terminal segn las reglas de gramtica. Los rboles se analizan Sintaxis de arriba a abajo y de izquierda a derecha. Reduccin cada vez que se produce, sus reglas semnticas correspondientes (acciones).
Anlisis semntico utiliza la sintaxis dirige las traducciones para realizar las tareas antes mencionadas.
Analizador semntico recibe AST (Abstract Syntax Tree) de su etapa anterior (sintaxis).
Analizador semntico concede informacin sobre los atributos de AST, que son llamados atribuido AST.
Los atributos son dos tupla valor, <nombre de atributo, valor de atributo>
Por ejemplo:
int value = 5; <type, integer> <presentvalue, 5>
Para cada produccin, damos una regla semntica.
S-atribuy SDT
Si un TRATO ESPECIAL Y DIFERENCIADO slo utiliza atributos sintetizados, se llama como S-atribuidas al SDT. Estos atributos son evaluados usando S-atribuidas SDTS que tienen sus acciones semnticas escrito despus de la produccin (a la derecha).

Tal como se ha descrito anteriormente, los atributos de S-atribuidas SDTs son evaluados en la parte inferior de anlisis, como los valores de los nodos padres dependen de los valores de los nodos secundarios.
L-atribuy SDT
Esta forma de SDT de ambos atributos sintetizados y heredados con la restriccin de no tomar los valores de derecha hermanos.
En L-atribuidas SDTs, un no-terminal pueden obtener los valores de su padre, hijo, y nodos relacionados. Tal como se muestra en la siguiente produccin
S ABC
S puede tomar valores de A, B y C (sintetizada). UNA puede tomar valores de S. B puede tomar valores entre S y A. C se puede obtener los valores de S, A y B. No Hay terminal puede obtener los valores de los hermanos a su derecha.
Los atributos de L-atribuidas SDTs son evaluados por primero en profundidad y de izquierda a derecha el anlisis.

Podemos concluir que si la definicin se S-atribuidas, tambin es L-atribuida a L-atribuidas definicin encierra S-atribuidas las definiciones.