Presentacion Compiladores

Páginas: 11 (2598 palabras) Publicado: 7 de marzo de 2016
Teoría de Compiladores
Análisis semántico







Mark Lozano
José Ávila
Allan Cerrato
Audry Meléndez
Fausto Romero
María Cheverria

Resumen
• Introducción
• Gramáticas de atributos.
– Gramáticas S-atribuidas.
– Gramáticas L-atribuidas.

• Esquemas de traducción dirigidos por sintaxis.
• Grafo de dependencias.
• Evaluación de atributos.

Introducción
• El lenguaje es un vehículo por elcual se transmiten instrucciones a
un procesador para que las ejecute y produzca ciertos resultados.
• Es tarea del compilador extraer el contenido semántico incluido en las
sentencias del programa.
• Ciertos aspectos relativos a la corrección de un programa no se
pueden expresar claramente mediante el lenguaje de programación.
• Es necesario dotar al compilador de rutinas auxiliares para captar
todolo que no se ha expresado mediante la sintaxis del lenguaje

Introducción
• Semántica: conjunto de reglas que especifican el
significado de cualquier sentencia
sintácticamente correcta y escrita en un
determinado lenguaje.
• El análisis semántico, a diferencia de otras fases, no se
realiza claramente diferenciado del resto de las tareas del
compilador.
– Fase en la que se obtiene informaciónnecesaria para la compilación
tras conocer la estructura sintáctica del programa.
– Completa las fases de análisis léxico y sintáctico incorporando
comprobaciones que no pueden asimilarse al mero reconocimiento de
una cadena dentro de un lenguaje

Introducción
• Errores semánticos de un programa:
– Conversiones de tipos no permitidas
int x;
x = 4.32;
Error: Ej1.java [6:1] possible loss of precision– Variables usadas y no definidas
– Operandos de tipos no compatibles
if (x || 5) x = 0;
Error: Ej2.java [7:1] operator || cannot be applied to int,int

Funciones del análisis
• Las principales funciones son:
semántico
– Identificar cada tipo de instrucción y sus componentes.
– Completar la Tabla de Símbolos.
– Realizar comprobaciones estáticas:
• Se realizan durante la compilación delprograma.
• Ejemplos: comp. de tipos, unicidad de etiquetas e identificadores,
etc.
• Realizar comprobaciones dinámicas:
• Aquellas que el compilador incorpora al programa traducido.
• Hacen referencia a aspectos que sólo pueden ser conocidos en
tiempo de ejecución
• Dependientes del estado de la máquina en la ejecución o del
propio programa.
– Validar las declaraciones de identificadores: en muchoslenguajes no se
puede usar una variable si no ha sido declarada con anterioridad.

Introducción
• El análisis semántico se divide en dos categorías:
– Análisis de la exactitud del programa para garantizar una ejecución
adecuada.
• Algunos lenguajes (Lisp, Smalltallk) pueden no tener análisis
estático.
• Por ejemplo, ADA es un lenguaje con fuertes restricciones para
que un programa sea ejecutable.
–Análisis para mejorar la eficiencia (optimización del programa
traducido)

Especificación de la
• No hay una notación estándar para especificar la
semántica
semántica estática de un lenguaje

– El análisis semántico varía mucho de unos lenguajes a
otros

• Las especificaciones semánticas de un lenguaje pueden
hacerse de manera informal o formal:
– Especificación natural: basada en el lenguajenatural.
• Por ejemplo:
– “Los identificadores deben definirse antes de utilizarse”
– “Los operandos deben ser compatibles entre sí”
– Especificación formal: definición más precisa.
• Lenguajes formales: Z, B, VDM, etc.
• Gramáticas de atributos (Knuth, 1968)

Gramáticas de
atributos
• Una gramática de atributos es una gramática libre de contexto cuyos
símbolos pueden tener asociados atributos y lasproducciones pueden tener
asociadas reglas de evaluación de los atributos.
• En la creación de compiladores se utilizan ecuaciones de atributos o reglas
semánticas como método para expresar la relación entre el cálculo de los
atributos y las reglas del lenguaje.
• Cada producción (regla sintáctica) tiene asociada una acción semántica que
se aplica cuando se realiza una reducción en el análisis...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Compiladores
  • Compiladores
  • Compilador
  • COMPILADORES
  • Compiladores
  • Compiladores
  • Compiladores
  • compiladores

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS