Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA
|
|
- Ángel del Río Quintero
- hace 7 años
- Vistas:
Transcripción
1 Diseño de compiladores Gestión de la memoria / Generación de código ORGANIZACIÓN DE MEMORIA Organización de memoria Depende del tipo de lenguaje (declarativos, imperativos), del compilador y del sistema operativo Organización de memoria El primer responsable de la gestión de la memoria es el sistema operativo Al ejecutar un programa, el loader del sistema operativo, asigna la cantidad de memoria y carga el código a ejecutar en la zona de código Se debe detectar una posible colisión entre el heap y la pila Se puede abortar el programa o aumentar la cantidad de memoria asignada Organización de memoria En sistemas con paginación de memoria, el esquema anterior puede estar particionado y desparramado entre la memoria real y virtual IMPORTANTE: Toda referencia a una posición de memoria dentro del código debe ser relativa a la posición asignada al proceso por el sistema operativo Para esto se utiliza un registro base con la dirección a considerar Zona de código Contiene las instrucciones del programa a ejecutar Están escritas en código máquina Consiste en la traducción a código máquina de todos los procedimientos y funciones del programa El tamaño del código y su contenido se calculan en tiempo de compilación 1
2 Zona de código Zona de código El archivo ejecutable contiene todo este código Además contiene información relativa al tamaño de los diferentes bloques de memoria que se necesitan Esta información es utilizada para cargar el programa en memoria para su ejecución Normalmente el código se considera un solo bloque compacto Algunos compiladores, por el contrario particionan el código en partes denominadas overlays Son usados cuando la memoria disponible es menor que el tamaño del programa Zona de código Los overlays son secciones de código que se cargan en memoria de manera independiente A lo largo del tiempo, dos overlays pueden haber ocupado la misma zona de memoria El compilador debe decidir cómo agrupar las funciones en overlays de manera que no se realicen demasiadas cargas de código a lo largo de la ejecución Memoria estática Es la forma más sencilla de gestión de la memoria El compilador asigna una posición de memoria fija a cada variable que se utilice en el programa Era la única forma de gestión de memoria en los primeros compiladores (FORTRAN) Memoria estática Actualmente sólo se utiliza para almacenar las constantes y variables globales del programa La asignación de memoria se realiza en tiempo de compilación de forma consecutiva, teniendo en cuenta el tamaño de la variable a asignar La dirección asociada a cada variable es constante y relativa al comienzo del segmento de datos (DS) 2
3 Características del compilador No pueden manejar funciones recursivas, ya que estas requieren varias instancias de cada variable de la función Cada función tiene asignado un registro de activación que contiene los parámetros, variables locales y variables temporales de la función La memoria estática contiene las variables globales y la secuencia de registros de activación de cada función Memoria tipo pila Se introdujo para manejar lenguajes estructurados con llamadas recursivas Las funciones recursivas requieren manejar diferentes instancias del registro de activación, es decir, del conjunto de valores de sus variables en cada ejecución de la función Memoria tipo pila Estos registros de activación se almacenan en forma de pila, de manera que el registro de la cima de la pila corresponde a la función en ejecución Al terminar la ejecución de una función debe desapilarse el registro de activación y pasar el control a la función que se encuentre en la cima de la pila Memoria tipo pila Al traspasar el control de una función a otra es necesario almacenar el estado de la máquina, es decir, el conjunto de valores de los registros del procesador Se debe almacenar la dirección del comienzo del registro de activación de la función llamante (Frame Pointer) Esta información se añade al contenido del registro de activación de cada función 3
4 Memoria tipo pila Protocolo de llamada El procesador maneja dos registros especiales Stack Pointer (SP): dirección del tope de la pila Frame Pointer (FP): dirección base del registro de activación de la función activa Se reserva espacio para el valor devuelto Se almacena el valor de los parámetros que se pasan a la función llamada Se almacena el valor de la dirección de retorno Se almacena el estado de la máquina (incluye SP y FP) Se pasa el control a la función llamada Comienza la ejecución del código de la función llamada Protocolo de retorno Se coloca el valor devuelto en el espacio reservado (si existe) Se restaura el contenido del estado de la máquina. Esto modifica el valor de FP y SP Provoca la liberación de la memoria ocupada por el registro de activación de la función llamada Se restaura el valor de la dirección de retorno Protocolo de retorno Se devuelve el control a la función que llama Se almacena el valor devuelto en la variable local o temporal adecuada GENERACIÓN DE CÓDIGO 4
5 Introducción Introducción La fase final de nuestro modelo de compilador es el generador de código Toma por entrada una RI del fuente y produce su equivalente en código objeto Las técnicas que veremos son independientes de si se realiza o no optimización Los requerimientos que, tradicionalmente, se imponen en un generador de código son muy demandantes El código generado debe ser correcto y de alta calidad (debe hacer uso efectivo de los recursos de la máquina objeto) El generador, además, debe ser eficiente Introducción El problema de generar código óptimo es no decidible Son problemas NP completos No hay algoritmos polinomiales que resuelvan el problema En la práctica, se utilizan heurísticas que generan código bueno (aunque probablemente no óptimo) Aspectos generales Entrada al generador de código (RI) Programas objeto Administración de memoria Selección de instrucciones Adjudicación de registros Elección de orden de evaluación Entrada al generador de código La entrada consiste en la RI del código fuente, producida por el frontend, junto con la información de la tabla de símbolos La TS se utiliza para determinar las direcciones en tiempo de ejecución de los objetos de datos denotados por los nombres en la RI Asumimos que la RI es de suficiente bajo nivel con tipos de datos que se pueden mapear razonablemente a la arquitectura objeto Entrada al generador de código Asumimos que el chequeo de tipos ya fue realizado, con la adecuada inserción de operadores de cambio de tipos, y demás Asumimos que no hay errores semánticos obvios (Ej., intentar indizar un arreglo con un punto flotante) 5
6 Entrada al generador de código Esta fase se basa en la asunción de que la RI no tiene errores (aunque en algunos compiladores, el chequeo se realiza a la vez que la generación de código) Código objeto La salida del generador es el código o programa objeto, el cual puede tomar distintas formas: código máquina absoluto código máquina reubicable código assembler Código objeto Producir código máquina absoluto como salida conlleva la ventaja de que puede ser ubicado en un lugar fijo de memoria y ejecutado inmediatamente Código reubicable (también llamado módulo objeto) permite tener módulos que se compilan por separado. Luego se unen (linking) y se cargan Código objeto En este caso se gana mucha flexibilidad en función del trabajo que conlleva la unión y carga. Si la máquina objeto no se hace cargo de la reubicación, el compilador debe producir información explícita para el linker Código objeto Administración de memoria Finalmente, producir código assembler como salida facilita el proceso de compilación. Podemos generar instrucciones simbólicas y usar las macros de assembler como ayudas. Finalmente, facilita la optimización a mano del código generado. El precio es que aparece una etapa final de ensamblado Consiste en determinar la posición de memoria en la que los diferentes símbolos del programa almacenan la información Depende de la estrategia utilizada para la gestión de memoria, el mecanismo puede variar 6
7 Selección de instrucciones Selección de instrucciones La naturaleza del conjunto de instrucciones de la máquina objeto, determina la dificultad de la selección de instrucciones La uniformidad y completitud del conjunto de instrucciones son factores muy importantes. Si la máquina objeto no soporta cada tipo de datos de forma uniforme, entonces se necesitan estrategias alternativas Si no nos interesa la eficiencia, para cada tipo de sentencia en C3D podemos diseñar un esqueleto de código que muestra el código objeto a generar para esa construcción Ej.: x:=y+z MOV Y, R0 ADD Z, R0 MOV R0, X Esto genera código pobre Selección de instrucciones Por ejemplo: a := b + c d := a + e Se traduce a MOV b, R0 ADD c, R0 MOV R0, a redundante? MOV a, RO redundante? ADD e, R0 MOV R0, d Selección de instrucciones La calidad del código generado se mide en función de Tamaño Velocidad En función de la variedad de instrucciones uno puede seleccionar la instrucción más performante (ej. INC vs MOV - ADD - MOV). Para los casos no triviales, es un problema muy complejo. Asignación de registros Operar sobre registros es más rápido y eficiente que operar sobre memoria Por ello, la adjudicación eficiente de registros tiene un gran impacto en la performance Asignación de registros El uso de registros puede dividirse en dos subproblemas: Durante la reserva de registros (allocation), se seleccionan el conjunto de variables que vivirá en registros en un punto del programa. Durante la (posterior) asignación de registros (assignation), se elige el registro específico para cada variable. 7
8 Orden de evaluación El orden en que algunas computaciones se llevan a cabo puede afectar la eficiencia del código objeto Algunos ordenes requieren menos registros para almacenar valores intermedios Seleccionar el orden óptimo es también NPcompleto 8
Tema 6 Organización y gestión de la memoria
Departamento de Tecnologías de la Información Tema 6 Organización y gestión de la memoria Ciencias de la Computación e Inteligencia Artificial Índice 6.1 Organización de la memoria en tiempo de ejecución
Más detallesLos registros son la memoria principal de la computadora. Existen diversos registros de propósito general y otros de uso exclusivo.
Unidad IV: Generación de código objeto 4.1 Registro Los registros son la memoria principal de la computadora. Existen diversos registros de propósito general y otros de uso exclusivo. Algunos registros
Más detallesFASES DE UN COMPILADOR
FASES DE UN COMPILADOR PROGRAMA FUENTE analizador léxico analizador sintáctico administrador analizador semántico manejador de la tabla generador de código intermedio de errores de símbolos optimizador
Más detallesCompiladores: Ambientes para Ejecución. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón
Compiladores: Ambientes para Ejecución Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón Procedimientos Definición de un Procedimiento: es una declaración
Más detallesTema 8 Gestión de la memoria en tiempo de ejecución.
Traductores, Compiladores e Intérpretes 1 Tema 8 Gestión de la memoria en tiempo de ejecución. S Organización de la memoria en tiempo de ejecución. Cuando un programa se ejecuta sobre un sistema operativo
Más detallesSistemas Operativos. Curso 2017 Administración de memoria I
Sistemas Operativos Curso 2017 Administración de memoria I Agenda Introducción. Conceptos básicos. Preparación de un programa para ejecutar. Áreas de la memoria de un proceso. Asociación de direcciones.
Más detallesCompiladores: Introducción
Compiladores: Introducción Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. (galvarez@puj.edu.co) Basado en [Aho, 2007, chp. 1] Qué es un COMPILADOR?
Más detallesCompiladores: Generación de Código. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón
Compiladores: Generación de Código Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón Generación de Código Representación Intermedia Tabla de Símbolos
Más detallesGestión de la memoria en tiempo de ejecución
Apéndice A Gestión de la memoria en tiempo de ejecución A1. Organización de la memoria en tiempo de ejecución Las técnicas de gestión de la memoria durante la ejecución del programa difieren de unos lenguajes
Más detallesUnidad 2. Introducción Lenguajes y Compiladores
Unidad 2 Introducción Lenguajes y Compiladores Principal material bibliográfico utilizado Compiladores Principios, técnicas y herramientas. Aho y Ullman. Addison Wesley. www.jorgesanchez.net www.iqcelaya.itc.mx/~vicente/programacion/tradcomp.pdf
Más detallesCompiladores e intérpretes Introducción
Introducción Profesor: Eridan Otto Introducción Perspectiva histórica Motivación Definiciones Componentes y fases de un compilador 1 Introducción Definiciónes básicas Traductor: desde un punto de vista
Más detallesLenguajes de Programación I
Lenguajes de Programación I Subrutinas - Pasaje de Ernesto Hernández-Novich Copyright c 2006-2010 Subrutinas Mecanismo principal para abstracción de control. Asocian un nombre a una secuencia
Más detallesDiseño de Compiladores I. Estructura General de un Compilador
Diseño de Compiladores I Estructura General de un Compilador PROGRAMA FUENTE COMPILADOR SALIDA Mensajes de Error 2 Un compilador es un programa que traduce un programa escrito en lenguaje fuente y produce
Más detallesArquitectura de Computadores II Clase #7
Arquitectura de Computadores II Clase #7 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2009 Veremos Memoria virtual Resumen de ideas para mejorar performance 1 Recordemos:
Más detallesArquitectura de Computadoras
Arquitectura de Computadoras Clase 6 RISC Computadoras de repertorio reducido de instrucciones Historia de evolución (1) El concepto de familia: Introducido por IBM en su System/360 en 1964. DEC PDP-8.
Más detallesConcepto de compilador Intérprete Fases de un Compilador Herramientas de construcción de Compiladores
18:55 1 2 Temas Concepto de compilador Intérprete Fases de un Compilador Herramientas de construcción de Compiladores Objetivo Que el estudiante logre conocer, comprender y manejar conceptos y técnicas
Más detallesLenguaje de programación. COMPILADORES Unidad I: Introducción al proceso de compilación
COMPILADORES Unidad I: Introducción al proceso de compilación Flor Prof. Flor Narciso GIDyC-Departamento de Computación LABSIULA-Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de
Más detallesProcesadores de lenguaje Tema 8 Generación de código y optimización
Procesadores de lenguaje Tema 8 Generación de código y optimización Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Tipos de código objeto Operaciones básicas en la generación
Más detallesFacultad de Ingeniería Industrial y de Sistemas v2.0 MA781U GESTION DE MEMORIA
GESTION DE MEMORIA Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen La memoria es el lugar donde residen procesos y datos de los programas del usuario y del sistema operativo; se debe
Más detallesArquitectura de Computadores II Clase #7
Arquitectura de Computadores II Clase #7 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Memoria virtual 1 Recordemos: Jerarquía de Memoria Registros Instr.
Más detallesArquitectura de Computadores II Clase #7
Arquitectura de Computadores II Clase #7 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Memoria virtual Recordemos: Jerarquía de Memoria Nivel Superior Registros
Más detallesNotas de curso de Programación y estructuras de datos. Memoria dinámica
Notas de curso de Programación y estructuras de datos. Memoria dinámica Nikos Mylonakis, Fernando Orejas nicos@lsi.upc.edu Dept. Llenguatges i Sistemes Informátics Universitat Politécnica de Catalunya
Más detallesGestión de Memoria. Gestión de Memoria. Requisitos de Gestión de Memoria
Gestión de Memoria Gestión de Memoria Dividir la memoria para alojar múltiples procesos La memoria necesita ser asignada eficientemente para alojar tantos procesos como sea posible Capítulo 7 Requisitos
Más detallesAnálisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas
Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semático c 2001 José Fortes Gálvez p.1 Análisis?... semántico? La semántica corresponde al significado asociado
Más detallesAnálisis de algoritmos
Tema 02: Complejidad de los algoritmos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Algoritmo Algoritmo vs. Proceso Computacional
Más detallesProcesadores de lenguaje Tema 6 La tabla de símbolos
Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de
Más detallesCOLEGIO DE ESTUDIOS DE POSGRADO DE LA CIUDAD DE MÉXICO
COLEGIO DE ESTUDIOS DE POSGRADO DE LA CIUDAD DE MÉXICO ELABORO: ALEJANDRA FUERTES FRANCISCO TEMA: LENGUAJES DE PROGRAMACIÓN INTRODUCCIÓN Un lenguaje de programación es un conjunto de instrucciones que
Más detallesFacultad de Ingeniería Industrial y de Sistemas v2.0 MA781U MEMORIA VIRTUAL
MEMORIA VIRTUAL Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen Para un aprovechamiento eficiente del CPU y los recursos de E/S se requiere mantener en el sistema operativo la mayor
Más detallesProcesadores de lenguaje Tema 6 La tabla de símbolos
Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de
Más detallesADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:
ADMINISTRACION DE LA MEMORIA Función del Administrador de Memoria Registra qué parte de memoria está libre y ocupada Asigna y libera espacio en memoria a los procesos Administra el intercambio entre la
Más detallesConstruyendo Programas más Complejos
Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más
Más detallesTema 1. Introducción
Departamento de Tecnologías de la Información Tema 1 Introducción Ciencias de la Computación e Inteligencia Artificial Índice 1.1 Conceptos 1.2 Un poco de historia 1.3 Estructura de un compilador 1.4 Teoría
Más detallesPara cada Instrucción del µp hay un Mnemónico. Existen casi tantos lenguajes ensamblador como µps.
7-1 Para cada Instrucción del µp hay un Mnemónico Ej: 01 000 001 LD B, C Existen casi tantos lenguajes ensamblador como µps. Ejemplo: LD A, (OPER1) LD B, A LD A, (OPER2) ADD A, B LD (SUMA), A Qué son OPER1,
Más detallesNOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ÁREA A LA QUE PERTENECE: POST-REQUISITO:
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ESCUELA: Ciencias y Sistemas ÁREA
Más detallesIntroducción al Diseño de Compiladores. Año
Introducción al Diseño de Compiladores Año 2003 1 BIBLIOGRAFÍA [AHO] Compilers. Principles, Techniques, and Tools Aho, Sethi; Adisson-Wesley 1986 [TEU] Compiladores: Conceptos fundamentales. Teufel ; Addison
Más detallesNombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion.
Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion. Fecha de entrega: 10 de Mayo de 2013. Campus: Villahermosa. Carrera:
Más detallesCapítulo 9 Gestión de la memoria en tiempo de ejecución
Java a tope: Traductores y compiladores con Lex/Yacc, JFlex/Cup y JavaCC Capítulo 9 Gestión de la memoria en tiempo de ejecución 9.1 Organización de la memoria durante la ejecución Como ya se comentó en
Más detallesTema 3. Gestión de la memoria
Tema 3. Gestión de la memoria Competencias: Comprender las funciones que debe desempeñar todo mecanismo que gestiona la memoria, identificando las ventajas e inconvenientes de los distintos esquemas de
Más detallesElementos para el estudio de los compiladores
Ing. Adrian Ulises Mercado Martínez Enero 30, 2015 Ing. Adrian Ulises Mercado Martínez Enero 30, 2015 1 / 51 1 Objetivo 2 Historia 3 Traductor Tipo de Traductores Compilador Intérprete Máquina Virtual
Más detallesLenguajes de programación
Introducción Lenguajes de programación Primera generación: lenguajes máquina Los programas se escriben en código binario 000001011010000000000000 Segunda generación: lenguajes simbólicos Cada instrucción
Más detallesTema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom
Tema 05: Tablas hash M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Función
Más detallesLógica: Algoritmo: Archivo: Base de datos: Bit:
Lógica: Algoritmo: Archivo: Base de datos: Bit: 1 LÓGICA: Es una secuencia de operaciones realizadas por el hardware o por el software. Lógica del hardware, Son los circuitos y Chips que realizan las operaciones
Más detallesInformación general. Diseño de compiladores. Información general. Organización del curso 22/03/2015. Docente. Correo electrónico. Pagina web del curso
Información general Diseño de compiladores Introducción y organización del curso Docente Pablo Garbusi Correo electrónico pgarbusi@fing.edu.uy Pagina web del curso http://www.fing.edu.uy/inco/curso/compil
Más detallesFundamentos de Sistemas Operativos Licenciatura en Administración de Tecnologías de Información y Comunicaciones
Fundamentos de Sistemas Operativos Licenciatura en Administración de Tecnologías de Información y Comunicaciones Rafael Vázquez Pérez Unidad 2 Administración de la Memoria Asignación de memoria paginada
Más detallesTema 2 Conceptos básicos de programación. Fundamentos de Informática
Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis
Más detallesANÁLISIS SEMÁNTICO LA TABLA DE SÍMBOLOS
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Más detallesGESTION DE LA MEMORIA
GESTION DE LA MEMORIA SISTEMAS OPERATIVOS Generalidades La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección Tanto el tamaño de la tabla (memoria), como el de los datos
Más detallesUnidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Más detallesFunciones y Datos en Intel 8086
y Datos en Intel 8086 Departamento de Arquitectura 1 1 Instituto de Computación Facultad de Ingeniería Universidad de la República Arquitectura de Computadoras, 2016 Temas 1 2 Tipos atómicos Tipos estructurados
Más detallesGENERACIÓN DE CÓDIGO INTERMEDIO EJEMPLOS PARA DISTINTAS ESTRUCTURAS DE DATOS
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Más detallesEstructura de Datos y de la Información. Tema 1: Gestión dinámica de la memoria. Departamento de Computación Universidade da Coruña, España.
Estructura de Datos y de la Información Tema 1: Gestión dinámica de la memoria Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detallesLenguajes de Programación
Lenguajes de Programación Entidades, atributos y ligaduras Ma. Laura Cobo Departamento de Ciencias e Ingeniería de la Computación 2018 Prof. Ma. Laura Cobo Página 1 Entidades Nombres o identificadores:
Más detallesCompiladores e Intérpretes Generación de Código Máquina e Intérpretes
1 Compiladores e Intérpretes Generación de Código Máquina e Intérpretes Sebastian Gottifredi 2017 Repaso 2 Repaso Para entender y controlar la estructura de un programa fuente hay que analizar si sigue
Más detallesTEMA 1. PROGRAMACIÓN DE UN COMPUTADOR
Tema 1. Programación de un computador TEMA 1. CIÓN DE UN COMPUTADOR 1. CONCEPTO DE 2. LENGUAJES DE CIÓN 2.1. LENGUAJE MÁQUINA 2.2. LENGUAJE ENSAMBLADOR 2.3. LENGUAJE DE ALTO NIVEL 3. ALGORITMOS. REPRESENTACIÓN
Más detallesTema 7. Generación de código
Departamento de Tecnologías de la Información Tema 7 Generación de código Ciencias de la Computación e Inteligencia Artificial Índice 7.1 Visión general 7.2 Código de tres direcciones 2 Índice 7.1 Visión
Más detalles2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Más detallesÍndice general 7. Presentación 15
ÍNDICE GENERAL Índice general 7 Presentación 15 1. Introducción 19 1.1. Antecedentes históricos de la computación................... 19 1.2. Definiciones previas............................... 24 1.3.
Más detallesLenguajes y Compiladores Introducción. Compiladores 1
Facultad de Ingeniería de Sistemas Lenguajes y Introducción 1 Objetivos Conocer los fundamentos de construcción de en todas sus fases, presentando los conceptos básicos, definiciones formales, técnicas
Más detallesProcesos y Memoria. Administración de Memoria 26/10/2010 SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS Administración de Memoria Organización Lógica de la Memoria La memoria principal es un arreglo de palabras o bytes, cada uno de los cuales tiene una dirección (espacio de direcciones).
Más detallesGranularidad y latencia
Niveles de paralelismo y latencias de comunicación Niveles de paralelismo. Granularidad o tamaño de grano. Latencia de comunicación. Particionado de los programas. Empaquetado de granos. Planificación
Más detallesMemoria Dinámica en C++
Memoria Dinámica en C++ Algoritmos y Estructuras de Datos II DC-FCEyN-UBA 26 de Agosto de 2015 AED2 (DC-FCEyN-UBA) Memoria Dinámica en C++ 26 de Agosto de 2015 1 / 46 Repaso: Qué es una variable? Matemática:
Más detallesUnidad III: Introducción a la Programación
Unidad III: Introducción a la Programación 3.1 Características del lenguaje de programación Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a
Más detallesTema: Generación de código intermedio
Compiladores. Guía 10 1 Tema: Generación de código intermedio Objetivos Específicos Conocer las características y principal función de un generador de código. Analizar el funcionamiento, entrada y salida
Más detallesArquitectura de Computadoras
4-1 Arquitectura de Computadoras Tema 4: Arquitectura del Set de Instrucciones Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom 4-2 Arquitectura del Set de Instrucciones Indice
Más detallesSistemas operativos: una visión aplicada. Capítulo 4 Gestión de memoria
Sistemas operativos: una visión aplicada Capítulo 4 Gestión de memoria Contenido Objetivos del sistema de gestión de memoria Modelo de memoria de un proceso Esquemas de memoria basados en asignación contigua
Más detallesTema V Generación de Código
Tema V Generación de Código Una vez que se ha realizado la partición HW/SW y conocemos las operaciones que se van a implementar por hardware y software, debemos abordar el proceso de estas implementaciones.
Más detallesProgramación de Ordenadores
Programación de Ordenadores Ingeniería Química David Pelta Depto de Ciencias de la Computación e I.A. Universidad de Granada Índice Resolución de Problemas con Ordenadores Algoritmo Metodología de la programación
Más detallesNombres, Ligaduras, Chequeo de Tipos y Alcance. Luis Garreta (Basados en el libro de Robert Sebesta)
Nombres, Ligaduras, Chequeo de Tipos y Alcance Luis Garreta lgarreta@unicauca.edu.co (Basados en el libro de Robert Sebesta) 1 Nombres, Ligaduras, Chequeo de Tipos y Alcance Nombres Variables El concepto
Más detallesLenguajes. Ciclo de desarrollo. Cód. Máquina Lenguajes alto nivel Lenguaje ensamblador 6-2. Introducción a los microprocesadores IIE FI - UDELAR
6-1 Lenguajes Cód. Máquina Lenguajes alto nivel Lenguaje ensamblador Ciclo de desarrollo 6-2 Nivel de abstracción bajo ceros y unos. Es lo único que entiende el procesador. Objetivo: código de máquina
Más detallesTema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía
Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento
Más detallesUnidad VIII Generación de código intermedio. M.C. Juan Carlos Olivares Rojas
Unidad VIII Generación de código intermedio M.C. Juan Carlos Olivares Rojas Agenda 8.1 Lenguaje máquina. 8.1.1 Características. 8.1.2 Direccionamiento. 8.2 Lenguaje ensamblador. 8.2.1 Características.
Más detallesNOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ÁREA A LA QUE PERTENECE:
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA EN CIENCIAS Y SISTEMAS NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ESCUELA:
Más detallesProcesadores de lenguaje Tema 1 Introducción a los compiladores
Procesadores de lenguaje Tema 1 Introducción a los compiladores Salvador Sánchez, Daniel Rodríguez Departamento de Ciencias de la Computación Universidad de Alcalá Resumen del tema Traductores Estructura
Más detallesTema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Más detallesINFORME MEMORIA CACHE Y MEMORIA VIRTUAL.
AIEP PROGRAMACIÓN COMPUTACIONAL FUNDAMENTOS DE PROGRAMACIÓN INFORME MEMORIA CACHE Y MEMORIA VIRTUAL. Por:Diego Menéndez Introducción. Ante la inmensa velocidad de los procesadores que a medida del tiempo
Más detallesSistemas Operativos. Curso 2016 Administración de memoria II
Sistemas Operativos Curso 2016 Administración de memoria II Agenda Memoria Virtual. Paginación. Segmentación. Segmentación con paginación. Sistemas Operativos Curso 2016 Administración de memoria II 2/35
Más detallesUn. VIII. Generación de Código Objeto
Un. VIII. Generación de Código Objeto 8.1 Lenguaje Máquina Es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. El lenguaje máquina solo es entendible por las computadoras.
Más detallesCruz García Karen Ilzette González Mendoza María del Rosario Hernández Castañeda Alan Eliseo Sánchez Quiroz Sheila Mariana Varela García Tania
Cruz García Karen Ilzette González Mendoza María del Rosario Hernández Castañeda Alan Eliseo Sánchez Quiroz Sheila Mariana Varela García Tania Violeta Un ensamblador es el programa que convierte un listado
Más detallesArquitectura de Computadoras
Arquitectura de Computadoras (Cód. 5561) 1 Cuatrimestre 2016 Dra. Dana K. Urribarri DCIC - UNS Dana K. Urribarri AC 2016 1 Memoria Virtual Dana K. Urribarri AC 2016 2 Memoria Virtual Arquitectura 32 bits:
Más detallesComplejidad Computacional
Complejidad Computacional MLG521 Cristobal Rojas Pamela Alvarez Departamento de Ciencias de de la Ingeniería Departamento de Ingeniería Matemática Universidad Andrés Bello MLG521 Cómo medir la dificultad
Más detalles14/03/2018. Problemas, Algoritmos y Programas. Problemas, Algoritmos y Programas. Programas y Lenguajes. Programas y Lenguajes. Programas y Lenguajes
Problemas, Algoritmos y Programas PROBLEMA Solución Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar ALGORITMO Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR PROGRAMA Problemas,
Más detallesIntroducción a los compiladores
Introducción a los compiladores William Cruz-Santos wdelacruzd@uaemex.mx Ingeniería en Computación Universidad Autónoma del Estado de México Unidad de Competencia I 2 de octubre de 2015 William Cruz-Santos
Más detallesAnálisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas
Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semático v1.2 c 2005 José Fortes Gálvez p.1 Análisis?... semántico? La semántica corresponde al significado asociado
Más detallesProgramación de Ordenadores. Dept. Ciencias de la Computación e I.A. Universidad de Granada
TEMA Programación de Ordenadores Dept. Ciencias de la Computación e I.A. Universidad de Granada 1 Índice Resolución de Problemas con Ordenadores Algoritmo Metodología de la programación Lenguajes de programación
Más detallesSistemas de Archivos. Unidad 2 Almacenamiento y Estructuras de Archivos
Sistemas de Archivos Unidad 2 Almacenamiento y Estructuras de Archivos Introducción Archivo Un archivo es un conjunto de datos que el usuario ve como una sola unidad o entidad Sistemas de Archivos Sistema
Más detallesTEMA 5: Subprogramas, programación modular
TEMA 5: Subprogramas, programación modular 5.1.-Definición de módulo. Programación modular La programación modular está basada en la técnica de diseño descendente, que como ya vimos consiste en dividir
Más detallesLenguajes de Programación
Lenguajes de Programación Entidades, atributos y ligaduras Ma. Laura Cobo Departamento de Ciencias e Ingeniería de la Computación 2017 Prof. Ma. Laura Cobo Página 1 Entidades Nombres o identificadores:
Más detallesARQUITECTURA DE COMPUTADORES 2º I.T.
Curso 2011-2012 Pág 1 de 6 1.- (4 ptos) Marque con un opción correcta de las siguientes afirmaciones. (0.4 / -0.1) 1.1 La arquitectura de Von Neumann: a) Es capaz de procesar con una misma instrucción
Más detallesAdministración de Memoria. Módulo 8. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur
Administración de Memoria Módulo 8 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Módulo 8: Administración de Memoria Base Intercambio (Swapping) Alocación Contigua
Más detallesTema 18: Memoria dinámica y su uso en C
Tema 18: Memoria dinámica y su uso en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1
Más detallesTema 14: Diseño Estructurado (Modularidad)
Tema 14: Diseño Estructurado (Modularidad) M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco)
Más detallesUn. I. Introducción a la programación de sistemas
Un. I. Introducción a la programación de sistemas 1.1 Qué es la programación de sistemas? La programación de sistemas comprende el desarrollo de aquellos programas de computadora que tienen una fuerte
Más detallesAdministración de la memoria
Administración de la memoria 1 Administración de la Memoria Funciones: - administrar el recurso memoria realizando la asignación del mismo a los procesos - proveer mecanismos que eviten la interferencia
Más detallesAlgoritmos y Programación I. Curso Prof. Arturo Servetto
75.40 95.14 Algoritmos y Programación I Curso Prof. Arturo Servetto Propósitos del Curso Presentar al alumno un panorama general de la Informática a partir del concepto de algoritmo, que le sirva como
Más detallesComponentes Básicos. InCo. InCo Componentes Básicos 1 / 28
Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes
Más detallesLa organización lógica y física de los sistemas de archivo y sus mecanismos de acceso de archivo.
La organización lógica y física de los sistemas de archivo y sus mecanismos de acceso de archivo. Se refiere a las diferentes maneras en las que puede ser organizada la información de los archivos, así
Más detalles