martes, 31 de mayo de 2016

Unidad 4 Análisis semántico

¿Que es la semántica?

Se refiere a los aspectos del significado, sentido o interpretación del significado de un determinado elemento, símbolo, palabra, expresión o representación formal.


Análisis semántico
Se trata de determinar el tipo de los resultados
intermedios, comprobar que los argumentos
que tiene un operador pertenecen al conjunto
de los operadores posibles, y si son compatibles
entre sí, etc. En definitiva, comprobará que el

significado de lo que se va leyendo es válido.

  • El análisis semántico se realiza posteriormente al sintáctico y mucho más difícil de formalizar que éste.
  • La salida “teórica” de la fase de análisis semántico sería un árbol semántico.






  • Que es un árbol semántico?
    Es una estructura jerárquica en la cual se registran las operaciones que implica u operan dentro del programa fuente 

    En cada una de las ramas del  árbol semántico se registra el valor o significado que este debe tener, y el análisis semántico se encarga de terminar cual de los valores registrados en las ramas es aplicable.





    Tabla de símbolos en esta fase
    Un compilador necesita guardar y usar la información de los objetos que se va encontrando en el texto fuente, como variables, etiquetas, declaraciones de tipos, etc.

    Esta información se almacena en una estructura de datos interna conocida como tabla de símbolos.



    •  El compilador debe desarrollar una serie de funciones relativas a la manipulación de esta tabla como consultar un elemento en ella, y consultar la información relacionada con un símbolo, etc. 
    • Como se tiene que acceder mucho a la tabla de símbolos los accesos deben ser lo más rápidos posible para que la compilación sea eficiente.




    Sistemas de tipo: 
    Es el conjunto de reglas que determinan el criterio para asignar expresiones de tipo a las diferentes partes del código fuente.



    • Tipo básico: entero, carácter, real, lógico  
    • Nombres de tipo 
    • Constructores de tipo: estructuras, uniones, objetos 
    •  Apuntadores: referencias a tipos 
    • Funciones a=suma();


    Chequeo de tipos (y otros)
    Un compilador debe realizar una serie de chequeo estáticos, como chequeo de tipos:

    Consistencia: unicidad, existencia, no-ciclicidad, ... Equivalencia y compatibilidad de tipos Inferencia de tipos (en valores) Sobrecarga de funciones y operadores


    COMPROBACIONES SEMÁNTICAS TIPOS


    • Comprobaciones ESTÁTICAS. Las comprobaciones sintácticas y semánticas. Comprobaciones DINÁMICAS. Realizadas en tiempo de ejecución.
    • Comprobaciones SEMÁNTICAS 
    • De TIPO.
    • Verificación del tipo de los operando en las expresiones.

    • De FLUJO de CONTROL.
    • Verifica los puntos del programa de salida y entrada del control.


    COMPROBACIONES SEMÁNTICAS

    De UNICIDAD. Verifica la presencia de símbolos de forma única. (ejemplo: declarar un símbolo una sólo vez). Relación de NOMBRES. Un mismo nombre puede aparecer más de una vez.


    No hay comentarios.:

    Publicar un comentario