FORMA INTERNA DE REPRESENTAR

Slides:



Advertisements
Presentaciones similares
Ejemplo Práctico de un Compilador Pequeño
Advertisements

Clasificación de los compiladores
Compiladores e intérpretes
¿Compilador ? Es un traductor que convierte un texto escrito en un lenguaje fuente y lo traduce a un programa objeto en código máquina.
ESTRUCTURA DE DATOS Unidad 03 PILAS.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS.
Procesadores de Lenguaje
OPTIMIZACION DE CODIGO
ESTRUCTURAS LINEALES UNIDAD 3.
Técnico en programación de Software
Unidad 1. Introducción al proceso de compilación.
Teoría de lenguajes y compiladores
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Traducción dirigida por la Sintaxis
Temas Operaciones básicas Operaciones Operadores Aritméticos
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Teoría de lenguajes y compiladores
Definición EL APRENDIZAJE DE LAS MATEMÁTICAS
Tema 3. Optimización de Código
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
Teoría de lenguajes y compiladores
APLICACIONES DE PILAS Estructuras de Datos.
TRAMPAS EN EL DISEÑO DE LENGUAJES CON RELACIÓN A LOS NOMBRES - REGLAS DE ALCANCE - COMPILACIÓN POR SEPARADO CONTROL DE FLUJO - EVALUACIÓN DE EXPRESIONES.
Álgebra elemental.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
BLOQUE 2 MATEMATICAS 4 GRADO
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
M.C. Juan Carlos Olivares Rojas
Unidad III Elementos del lenguaje C++
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Licenciatura en Informatica
INGENIERIA EN SISTEMAS COMPUTACIONALES
ANALISIS SINTACTICO Parte I
Ecuaciones Lineales.
ESTRUCTURA DE DATOS ESD-243
MATEMÁTICA 2013 Unidad 0 Repaso.
Números Enteros 8° básico 2015.
ECUACIONES LINEALES DEFINICIÓN
Teoría de lenguajes y compiladores
Procesadores de Lenguajes
Capítulo 7 Gestión de memoria.
ETAPAS PARA SOLUCIONAR UN PROBLEMA
Programación de Sistemas
Compiladores e intérpretes
Introducción a la programación
INFORMATICA VII (Programación e implementación de sistemas)
Unidad 1. Introducción a los Compiladores.
Términos algoritmo diseñar algoritmo implementar algoritmo
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
Teoría de lenguajes y compiladores
Teoría de lenguajes y compiladores
Preposición: suma= var1 + var2 + 10; Análisis Léxico El analizador léxico lee los caracteres del programa fuente, y verifica que correspondan a una secuencia.
PRINCIPIOS DE PROGRAMACIÓN
El proceso de compilación
Presente un cuestionario con los aspectos mas importantes sobre los
Tipos de Datos.
IMPLEMENTACION DE COLAS MEDIANTE LISTAS
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Programación de Sistemas
Conversiones Sistemas decimal - binario - octal - hexadecimal
Informática Ingeniería en Electrónica y Automática Industrial
Conceptos y Lenguaje Imperativo
REGLAS PARA ELABORAR SEUDOCODIGOS Y DIAGRAMA DE FLUJO
Cobol C Pascal Fortran 2. OBJETOS DE DATOS SmallTalk Java C++
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.
Estructura de Datos PILA Universidad Hispanoamericana Prof. Ing. Erick López.
Autómatas y Compiladores. Primera Semana. Ricardo Vargas Del Valle A35469.
Unidad Temática II Algoritmia Elemental Operadores aritméticos: son símbolos que le indican al compilador la operación de cálculo a realizar entre los.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Transcripción de la presentación:

FORMA INTERNA DE REPRESENTAR UNIDAD II SEMANTICA FORMA INTERNA DE REPRESENTAR RUTINAS SEMANTICAS CaFco - PS II - EJ-04

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

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

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

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

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

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

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

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

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

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