Descargar la presentación
La descarga está en progreso. Por favor, espere
1
FORMA INTERNA DE REPRESENTAR
UNIDAD II SEMANTICA FORMA INTERNA DE REPRESENTAR RUTINAS SEMANTICAS CaFco - PS II - EJ-04
2
FORMA INTERNA DE PROGRAMA FUENTE
Notación Polaca (Conversión Postfija) Los operadores se mandan directamente a un pila Cuando se lee un operador se retiene en la pila( pila de operadores). Los operadores se van poniendo en esta pila sucesivamente hasta encontrar uno con menor o igual prioridad que el de la cima, en cuyo caso se se sacan los que hubieran en la pila de mayor o igual prioridad y se coloca en ella este ultimo. El parentesis derecho no se coloca nunca en la pila y cuando aparece hay que desapilar todos los operadores hasta llegar al parentesis izquierdo y borrar este. Aunque el parentesis izquierdo tiene la mayor prioridad solo se saca cuando aparece un parentesis derecho. CaFco - PS II - EJ-04
3
Notación Polaca (Postfija)
Operador Prioridad Dentro de la Pila Prioridad Fuera De La Pila ^ *, /, % +, - ) 3 2 1 4 5 Ejemplo: Notación Infija Notación Postfija A + B * C A B C * + CaFco - PS II - EJ-04
4
Cuadruplo Un cuadruplo es una estructura tipo registro con cuatro campos, que se llamarán op, arg1, arg2 y resultado. Ejemplo R = A + B * C A B C * + op arg1 arg2 resultado * b c T1 + a T2 = R CaFco - PS II - EJ-04
5
RUTINAS SEMANTICA El compilador comprueba si el programa fuente sigue tanto las convenciones sintácticas como las semánticas del lenguaje fuente. A esta comrpación se le conoce comp comrobación estática, que a diferencia de la comprobación dinamica que se realiza durante la ejecución del programa objeto. Ejemplos de Comprobación: Comprobación de tipos Comprobadores de flujo de control Comprobadores de unicidad Comprobadores relacionadas con nombres CaFco - PS II - EJ-04
6
Ubicación del comprobador de tipos
Un comprobador de tipos se asegura de que el tipo de una construcción coincida con el previsto en su contexto. Analizador sintáctico Comprobador De tipos Generador de código intermedio Cadena de Componentes léxicos Árbol Sintáctico Ubicación del comprobador de tipos CaFco - PS II - EJ-04
7
SISTEMA DE TIPOS El diseño de un comprobador de tipos para un lenguaje se basa en informacion acerca de las construcciones sintácticas del lenguaje, la noción de tipos y la regla para aignar tipos a las construcciones del lenguaje. Ejemplos: Si ambos operandos de los operadores aritmeticos de suma, sustracción y multiplicación son de tipo entero, entonces el resultado es de tipo entero. De acuerdo con el ejemplo, se encuentra implícita la idea de que cada expresión tiene asociado un tipo. CaFco - PS II - EJ-04
8
Expresiones de Tipos Una expresión de tipo es, o bien un tipo básico o bien se forma aplicando un operador llamado constructor de tipos a otras expresiones de tipos. Los conjuntos de tipos y constructores básicos dependen del lenguaje que deba comprobarse. CaFco - PS II - EJ-04
9
Sistemas de Tipos Un sistema de tipos es una serie de reglas para asignar expresiones de tipos a las distintas partes de un programa. Un comprobador de tipos implanta un sistema de tipos. CaFco - PS II - EJ-04
10
Comprobación Estática y Dinámica de Tipos
La comprobación realizada por un compilador es estática, mientras que la comprobación hecha al ejecutar el programa objeto se denomina dinamica. Un sistema de tipos seguro elimina la necesidad de comprobar dinámicamente errores de tipos ya que permite determinar estáticamente que dichos errores no pueden ocurrir cuando se esta ejecutando el programa objeto. CaFco - PS II - EJ-04
11
Recuperación de Errores
El sistema de tipos deberá hacer algo razonable al encontrar un error. Como minimo se informa de la naturaleza y posición del error. El comprobador se debe recuperar del error para que pueda comrobar el resto del programa. Como el manejo de errores afecta a las reglas de comprobacion de tipos, tienen que diseñarse como parte del sistema de tipos desde el principio. CaFco - PS II - EJ-04
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.