Analisis semantico

99,227 views
98,453 views

Published on

Published in: Education
3 Comments
4 Likes
Statistics
Notes
No Downloads
Views
Total views
99,227
On SlideShare
0
From Embeds
0
Number of Embeds
268
Actions
Shares
0
Downloads
761
Comments
3
Likes
4
Embeds 0
No embeds

No notes for slide

Analisis semantico

  1. 1. Análisis semántico<br />Que es la semántica?<br /> 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.<br />Análisis semántico<br />Se trata de determinar el tipo de los resultados<br /> intermedios, comprobar que los argumentos<br /> que tiene un operador pertenecen al conjunto<br /> de los operadores posibles, y si son compatibles<br /> entre sí, etc. En definitiva, comprobará que el <br />significado de lo que se va leyendo es válido. <br />
  2. 2. Análisis semántico<br />El análisis semántico se realiza posteriormente al sintáctico y mucho más difícil de formalizar que éste.<br /> La salida “teórica” de la fase de análisis semántico sería un árbol semántico.<br />
  3. 3. Que es un arbolsemantico?<br />Es una estructura jerárquica en la cual se registran las operaciónes que implica u operan dentro del programa fuente <br />En cada una de las ramas del <br />arbolsemantico se registra el<br /> valor o significado que este <br /> debe tener, y el analisissemantico<br /> se encarga de terminar cual de<br /> los valores registrados en las <br /> ramas es aplicable.<br />
  4. 4. Ejemplo:<br />Suponiendo que tenemos esta linea de codigo en C:<br />res=valor1+valor2;<br />El analisissemantico se va a encargar que tanto el valor1 como el valor2 tengan datos que son compatibles en común y que ademas se les pueda aplicar dicho operador. <br />En C el simbolo (+) implica una suma de valores o una union de las cadenas<br />
  5. 5. Tabla de simbolos<br />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.<br /> Esta información se almacena en una estructura de datos interna conocida como tabla de símbolos.<br />
  6. 6. Tabla de simbolos<br />El compilador debe desarrollar una serie de funciones relativas a la manipulación de esta tabla como insertar un nuevo elemento en ella, consultar la información relacionada con un símbolo, borrar un elemento, 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.<br />
  7. 7. Sistemas de tipo: <br />Sistema de tipos: conjunto de reglas que determinan el criterio para asignar expresiones de tipo a las diferentes partes del código fuente.<br />Tipo básico: entero, carácter, real, lógico <br />Nombres de tipo<br />Constructores de tipo: estructuras, uniones, objetos <br />Apuntadores: referencias a tipos <br />Funciones a=suma(); <br />
  8. 8. Chequeos de tipos (y otros)<br />Un compilador debe realizar una serie de chequeos<br />estáticos, como chequeos de tipos:<br />Consistencia: unicidad, existencia, no-ciclicidad, ...<br />Equivalencia y compatibilidad de tipos<br />Conversión explícita [cast] o forzada [coercion]<br />Inferencia de tipos (en valores)<br />Sobrecarga de funciones y operadores<br />
  9. 9. COMPROBACIONES SEMÁNTICAS<br />Comprobaciones ESTÁTICAS.<br />Las comprobaciones sintácticas y semánticas.<br />Comprobaciones DINÁMICAS.<br />Realizadas en tiempo de ejecución.<br />Comprobaciones SEMÁNTICAS <br /> De TIPO.<br />Verificación del tipo de los operandos en las expresiones.<br />De FLUJO de CONTROL.<br />Verifica los puntos del programa de salida y entrada del<br />control.<br />
  10. 10. De UNICIDAD.<br />Verifica la presencia de símbolos de forma única.<br />(ejemplo: declarar un símbolo una sólavez).<br />Relación de NOMBRES.<br />Un mismo nombre puede aparecer más de una vez.<br />
  11. 11. Representaciones internas <br />Intermedias entre frontal [front-end] y dorsal [back-end],<br />permiten desacoplar los diseños de unos y otros.<br />Orientadas a:<br />Su optimización (instrucciones claras y simples)<br />Generar código de distintas máquinas objeto y el diseño debe permitir su fácil generación por el analizador<br /> semántico.<br />
  12. 12. INTEGRANTES DEL EQUIPO<br />José Guadalupe Gonzales<br />Fernando García Rivera<br />Jesús Alejandro Beltrán Reyna<br />

×