Elementos para el estudio de los compiladores

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Elementos para el estudio de los compiladores"

Transcripción

1 Ing. Adrian Ulises Mercado Martínez Enero 30, 2015 Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

2 1 Objetivo 2 Historia 3 Traductor Tipo de Traductores Compilador Intérprete Máquina Virtual 4 Sistema de procesamiento de lenguaje 5 Fases de compilación 6 División de un compilador en etapas y módulos 7 Diagramas T Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

3 Objetivo 1 Objetivo Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

4 Objetivo Objetivo El alumno describirá las etapas del proceso de compilación, sin importar el tipo de traductor del que se trate. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

5 Historia 2 Historia Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

6 Historia Historia 1940 Primeras computadoras Programación en código máquina Primeros ensambladores El proceso de ensamblado se vuelve automático 1950 John Backus dirige en IBM un proyecto de lenguaje algebraico Primer compilador de FORTRAN Primer compilador de FORTRAN para IBM modelo 704 Noam Chomsky publica sus estudios sobre la estructura de los lenguajes formales. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

7 Historia finales de 1950 Bauer dirige un proyecto de lenguaje formal (Universidad Munich) Se crea un cómitre con la Association for Computing Machinery, en el que participa Backus. Se define IAL(International Algebraic Language) IAL recibe el nombre de ALGOL 58 Definido en notación BNF (Backus-Naur Form) Declaración de variables Estructura modular Funciones recursivas Paso de parámetros por valor o por nombre Precursor de Pascal, Ada y Modula. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

8 Historia 1960 Primeras técnicas de desarrollo de compiladores Strong y otros dividen las fase de compilación en dos etapas: front-end y back-end y promueven la creación de UNCOL, lenguaje intermedio universal Rabin y Scott proponen el uso de AFD s para el análisis léxico Primer analizador sintáctico descendente recursivo Durante la década se estudian las gramáticas LL Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

9 Historia Década de 1970 Se estudian las gramáticas LR Se definen los métodos de análisis ascendente SLR y LARL Se crean muchas herramientas para ayuda de diseño de compiladores. Aparecen lex y yacc Surgen flex y bison Generación de código Se usaba la gestión de memoria estática. Se desarrolla la pila como forma de gestionar la memoria. El uso de la memoria dinámica genera el uso del montículo(heap) como zona de memoria dinámica. Surgen problemas con respecto a las perdidas de referencia o la recolección de basura. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

10 Historia Últimos años Optimización de código Máquinas virtuales y auge de los lenguajes interpretados. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

11 Traductor 3 Traductor Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

12 Traductor Traductor Un traductor es el software que se encarga de llevar un proceso de traducción de un lenguaje de entrada (lenguaje fuente) a otro de salida o destino (lenguaje objeto) Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

13 Traductor Tipo de Traductores Maquina Virtual Traductor Ensamblador Interprete Compilador Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

14 Traductor Tipo de Traductores Elementos del estudio de los compiladores Lenguaje Ensamblador Ensamblador Código Máquina Ensamblador Es un traductor para el lenguaje ensamblador de una computadora en particular. Lenguaje ensamblador Es un lenguaje de programación de bajo nivel, que representa las instrucciones binarias de una computadora en particular mediante mnemónicos. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

15 Traductor Compilador Elementos del estudio de los compiladores Compilador Programa Fuente Compilador Programa Objeto Compilador Es el programa que realiza el análisis y síntesis de un programa fuente a un programa objeto(no necesariamente programas de bajo nivel). Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

16 Traductor Compilador Elementos del estudio de los compiladores Tipos de compiladores Compilador Cruzado Es aquel compilador que se ejecuta en una arquitectura distinta de la que genera el código objeto. Compilador Source to source Es un compilador que recibe como entrada un archivo escrito en lenguaje de alto nivel y como salida genera un programa escrito en un lenguaje de alto nivel distinto al de entrada. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

17 Traductor Intérprete Elementos del estudio de los compiladores Programa Fuente Intérprete Salidas Entradas Intérprete Un intérprete es un traductor que no genera como salida código fuente, en lugar de ello las instrucciones de código fuente son ejecutadas directamente y la salida son los resultados de ejecutar el programa. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

18 Traductor Máquina Virtual Elementos del estudio de los compiladores Programa Fuente Compilador Programa intermedio Entradas Intérprete Salidas Máquina Virtual Es un tipo de traductor que se construye a base de un compilador y un intérprete, en este caso el compilador genera un programa que será ejecutado por el intérprete. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

19 Sistema de procesamiento de lenguaje 4 Sistema de procesamiento de lenguaje Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

20 Sistema de procesamiento de lenguaje Procesador de lenguaje Programa Fuente Preprocesador Programa fuente con código de bibliotecas Compilador Programa objeto en lenguaje ensamblador Ensamblador Código máquina relocalizable Enlazador/Cargador Archivos objeto de Biblioteca Código máquina ejecutable Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

21 Sistema de procesamiento de lenguaje Elementos del estudio de los compiladores Preprocesador 1 Programa separado del compilador que es invocado antes de la traducción real 2 Elimina los comentarios. 3 Incluye los archivos de las bibliotecas. 4 Sustituye las macros. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

22 Sistema de procesamiento de lenguaje Elementos del estudio de los compiladores Enlazadores 1 Recopila el código ensamblado en archivos separados a un solo archivo objeto. 2 Conecta el código objeto con el código de las bibliotecas. 3 Conecta el código objeto con los recursos administrados por el sistema operativo. Cargadores 1 Sustituye las localidades de memoria relativa a una referencia inmediata. 2 Las direcciones nuevos son de memoria absoluta. 3 La carga del programa ser realiza en conjunto con el enlazado del programa fuente. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

23 Fases de compilación 5 Fases de compilación Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

24 Fases de compilación Elementos del estudio de los compiladores Programa Fuente Análisis Léxico Tokens Análisis Sintáctico Árbol Sintáctico Análisis Semántico Árbol Sintáctico Anotado Generación de Código Intermedio Tabla de Símbolos Código Intermedio Optimización de Código Intermedio Tabla de Tipos Código Intermedio Generación de código Objeto Manejador de errores Código Objeto Optimización de Código Objeto Código Objeto Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

25 Fases de compilación Estructuras de Símbolos y tipos Tabla de Símbolos 1 Estructura de datos que mantiene la información asociada con los identificadores: funciones, variables, constantes. 2 Interactúa con todas las fases del compilador. 3 Las operaciones de inserción, eliminación y búsqueda, necesitan ser eficientes, es decir operaciones de tiempo constante. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

26 Fases de compilación Elemenntos para el estudio de los compiladores Estructuras de Símbolos y tipos Tabla de Literales o cadenas 1 Estructura de datos que almacena la información acerca de las constantes y las cadenas. 2 Interactúa con todas las fases del compilador. 3 Ayuda a reducir el tamaño de un programa al almacenar las constantes y las cadenas que se utilizan con mayor frecuencia. Se debe impedir la eliminación de los datos de la tabla. 4 Es necesaria para que el compilador genere direcciones simbólicas para cada cadena o literal Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

27 Fases de compilación Elemenbtos para el estudio de los compiladores Estructuras de Símbolos y tipos Tabla de Tipos 1 Estructura de datos que mantiene la información asociada con los tipos nativos del lenguaje de programación, así como los tipos de datos generados por el usuario: arreglos, clases, estructuras. 2 Interactúa con todas las fases del compilador. 3 Las operaciones de inserción, búsqueda y eliminación también deben ser eficientes debido a su gran uso en el proceso de compilación. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

28 Fases de compilación Análisis Léxico 1 Primera fase de un compilador. 2 Se encarga de separar el código fuente en tokens. 3 Un token es una tupla formada por < clase léxica, un valor de token> Diagrama Tokens Programa Fuente Análisis Léxico Análisis Sintáctico next token Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

29 Fases de compilación Programa Fuente en C posicion = inicial + velocidad*60; Ejemplo Los tokens que salen del análisis léxico son: 1 <id, 1>, el número indica la posición en la tabla de símbolos. 2 <op, => 3 <id, 2> 4 <op, +> 5 <id, 3> 6 <op, *> 7 <num, 60> 8 <signo, ;> Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

30 Fases de compilación Análisis Sintáctico 1 Segunda fase de compilación. 2 Utiliza los tokens para construir una estructura de datos llamada árbol sintáctico. 3 Las reglas de construcción de árbol sintáctico están definidas por una GLC. 4 Si el árbol sintáctico se puede construir, la cadena de entrada pertenece al lenguaje en caso contrario la cadena no pertenece. Diagrama Tokens Análisis Léxico Análisis Sintáctico Árbol Sintáctico next token Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

31 Fases de compilación Ejemplo = id1 + id2 * id3 60 Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

32 Fases de compilación Análisis Semántico El Análisis Semántico es la fase encargada de revisar la coherencia del programa fuente, es decir; recolecta el tipo de las variables, verifica el tipo de operandos en una operación, valida que las variables se hayan declarado antes de usarse, esta información y mucha mas se debe guardar en los nodos del árbol sintáctico. Diagrama Análisis Sintáctico Árbol Sintáctico Análisis Semántico Árbol Sintáctico con anotaciones Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

33 Fases de compilación Ejemplo = id1, float + id2,float * id3,float 60, int Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

34 Fases de compilación Generación de código Intermedio Esta fase de compilación se encarga de convertir el árbol sintáctico con la información adicional que agrego el análisis semántico en código intermedio. El código intermedio es una representación mas próxima al código máquina, pero sigue siendo independiente de la arquitectura final. Diagrama Árbol Sintáctico con anotaciones Análisis Semántico Generación de codigo iitermedio Código Intermedio Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

35 Fases de compilación Ejemplo t1 = inttofloat(60) t2 = id3 * t1 t3 = id2 + t2 id1 = t3 Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

36 Fases de compilación Optimización de Código Intermedio En esta fase se aplican varios algoritmos de optimización al código intermedio generado en la fase anterior para obtener código intermedio con mayor eficiencia. Ejemplo t1 = id3 * 60.0 id1 = id2 + t1 Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

37 Fases de compilación Generación de Código Objeto Esta es la última fase de compilación que se encarga de convertir el código intermedio en código objeto, que por lo general es código en lenguaje ensamblador. Ejemplo LDF R2, id3 MULF R2, R2, #60.0 LDF R1, id2 ADDF R1, R1, R2 STF id1, R1 Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

38 Fases de compilación Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

39 División de un compilador en etapas y módulos 6 División de un compilador en etapas y módulos Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

40 División de un compilador en etapas y módulos Etapas de un compilador La etapa de Análisis se encarga de revisar que toda la estructura del programa sea correcta y se pueda traducir al código objetivo. La etapa de Síntesis se encargar de transformar el árbol sintáctico en código objeto. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

41 División de un compilador en etapas y módulos El proceso de compilación consta de dos etapas: Análisis y Síntesis Programa Fuente Análisis Léxico Tokens Análisis Sintáctico Árbol Sintáctico Análisis Semántico Árbol Sintáctico Anotado Generación de Código Intermedio Código Intermedio Optimización de Código Intermedio Código Intermedio Generación de Código Objeto Código Objeto Optimización de Código Objeto Código Objeto Tabla de Símbolos Tabla de Tipos Manejador de errores Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

42 División de un compilador en etapas y módulos Clasificación de las fases de compilación en front-end y back-end Programa Fuente Análisis Léxico Tokens Análisis Sintáctico Árbol Sintáctico Análisis Semántico Árbol Sintáctico Anotado Generación de Código Intermedio Tabla de Símbolos Código Intermedio Optimización de Código Intermedio Tabla de Tipos Código Intermedio Generación de código Objeto Manejador de errores Código Objeto Optimización de Código Objeto Código Objeto Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

43 División de un compilador en etapas y módulos Front-end y Back-end Un compilador también puede dividirse en dos módulos funcionales: Front-end y Back-end El Front-end revisa la estructura del programa fuente y genera el código objeto que es la entrada para cualquier back-end que traduzca ese código intermedio en código de máquina. El Back-end este modulo traduce el código objeto en código máquina lo que se pueden tener varios back-end para un mismo código intermedio que lo transforme en distintos códigos de máquina. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

44 Diagramas T 7 Diagramas T Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

45 Diagramas T Un compilador escrito en lenguaje H que traduce lenguaje S a lenguaje T. Si se tienen dos compiladores que se ejecutan en la misma máquina H, uno de los que traduce lenguaje A al lenguaje B mientras que el otro traduce el lenguaje B al C; dejando que la salida del primero sea la entrada al segundo. Entonces podemos combinarlos dejando que la salida del primero sea la entrada al segundo. El resultado es un compilador de A a C en máquina H. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

46 Diagramas T Podemos utilizar un compilador de la máquina H a la máquina K para traducir el lenguaje de implementación de otro compilador de H a K. Esto se expresa de la siguiente manera. Utilizando un compilador existente para el lenguaje B en la máquina H para traducir un compilador de lenguaje A a H escrito en B, puede verse como sigue. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

47 Diagramas T Ahora el compilador de lenguaje B se ejecuta en una máquina diferente, lo cual resulta en un compilador cruzado para A y puede describirse de la siguiente manera: Arranque de un compilador Es común escribir un compilador en el mismo lenguaje que está por compilarse Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

48 Diagramas T El proceso de construcción consta se dos fases. Se puede escribir un compilador rápido e impreciso en lenguaje ensamblador o algún otro lenguaje de alto nivel, traduciendo solamente las características que en realidad sean utilizadas en el compilador.(fase 1) Este compilador puede ser ineficiente pero una vez en ejecución se utiliza para compilar el compilador eficiente y preciso para producir la versión final.(fase 2) Después del arranque automático se tiene un compilador tanto en código fuente como en código ejecutable. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

49 Diagramas T FASE 1 FASE 2 Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

50 Diagramas T La ventaja de este proceso es que cualquier mejoramiento al código fuente del compilador puede ser transferido inmediatamente a un compilador que este trabajando, aplicando el mismo proceso Otra ventaja es que transportar ahora el compilador a una nueva computadora anfitrión solamente requiere que la etapa final del código fuente vuelva a escribirse para generar código para la nueva máquina. Se compila utilizando el compilador antiguo para producir un compilador cruzado y el compilador es nuevamente recompilado mediante uno cruzado para una versión de trabajo para una nueva máquina. Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

51 Diagramas T Ing. Adrian Ulises Mercado Martínez Enero 30, / 51

Lenguaje de programación. COMPILADORES Unidad I: Introducción al proceso de compilación

Lenguaje 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 detalles

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas Unidad I Introducción a la programación de Sistemas M.C. Juan Carlos Olivares Rojas Agenda 1.1 Qué es y que estudia la programación de sistemas? 1.2 Herramientas desarrolladas con la teoría de programación

Más detalles

Tema 2 Introducción a la Programación en C.

Tema 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 detalles

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal

Más detalles

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

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 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

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Tema 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 detalles

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS PROGRAMA DE LABORATORIO CÓDIGO: 777 CRÉDITOS: 4 NOMBRE CURSO: ESCUELA: PRE-REQUISITO: Organización de Lenguajes y Compiladores

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Bootstrapping de Compiladores y Diagramas en T Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2012 Qué es un compilador?

Más detalles

Unidad II: Análisis semántico

Unidad 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 detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

Unidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas

Unidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas Unidad V Análisis Semántico M.C. Juan Carlos Olivares Rojas Agenda 5.1 Analizador semántico 5.2 Verificación de tipos en expresiones. 5.3 Conversión de tipos. 5.4 Acciones agregadas en un analizador sintáctico

Más detalles

Qué es un programa informático?

Qué es un programa informático? Qué es un programa informático? Un programa informático es una serie de comandos ejecutados por el equipo. Sin embargo, el equipo sólo es capaz de procesar elementos binarios, es decir, una serie de 0s

Más detalles

TEMA 3: El proceso de compilación, del código fuente al código máquina

TEMA 3: El proceso de compilación, del código fuente al código máquina TEMA 3: El proceso de compilación, del código fuente al código máquina 3.1 Fase de compilación y linkado (link, montado o enlace) Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado

Más detalles

Toda copia en PAPEL es un "Documento No Controlado" a excepción del original.

Toda copia en PAPEL es un Documento No Controlado a excepción del original. S U P E RIO R DE MISANTLA Apartado: 7.1 Copia No. Código:PD-SCD-1016 Versión No.: 02 Hoja : 2 de 12 4.- COMPETENCIAS A DESARROLLAR 4.1 Competencias Específicas: Diseña mediante el uso de reglas semánticas

Más detalles

Tema V Generación de Código

Tema 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 detalles

Las Etapas de la Compilación

Las Etapas de la Compilación Las de la Compilación El en la Compilación Universidad de Cantabria Outline 1 El Problema 2 Las y el Qué pasos son necesarios dar para hallar la estructura de un programa? En qué pasos podemos dividirlos

Más detalles

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Ingeniería Técnica en Informática de Sistemas Segundo curso Departamento de Informática y Análisis Numérico Escuela Politécnica Superior Universidad de Córdoba

Más detalles

Procesadores de lenguaje Tema 6 La tabla de símbolos

Procesadores 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 detalles

Tema 8 Gestión de la memoria en tiempo de ejecución.

Tema 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 detalles

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.

Más detalles

Tema 7. Generación de código

Tema 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 detalles

1. Computadores y programación

1. Computadores y programación 1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

Computadora y Sistema Operativo

Computadora y Sistema Operativo Computadora y Sistema Operativo Según la RAE (Real Academia de la lengua española), una computadora es una máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos

Más detalles

Un. VI. Generador de código intermedio.

Un. VI. Generador de código intermedio. Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje. Modulo 1. Introducción a los lenguajes de programación La solución de problemas mediante en uso de un computador nos lleva a desarrollar programas o aplicaciones, la construcción de estos programas debe

Más detalles

Tema 6 Organización y gestión de la memoria

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 detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo Qué es una computadora? Una computadora es una máquina digital y sincrónica con capacidad de cálculo numérico y lógico controlada

Más detalles

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior. Trabajo Final

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior. Trabajo Final Trabajo Final 1 Objetivo Comprender (en gran parte) un programa desarrollado en: C++ (Core ) Generador de código / Ejecución de comandos Flex (Lex) Lexer Genera un Analizador Léxico en C http://en.wikipedia.org/wiki/lex_(software)

Más detalles

C1 INTRODUCCIÓN AL LENGUAJE C. Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

C1 INTRODUCCIÓN AL LENGUAJE C. Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid C1 INTRODUCCIÓN AL LENGUAJE C Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid Índice 1. Lenguajes de Programación 1. Definición. 2. Niveles

Más detalles

Técnicas de Programación

Técnicas de Programación Técnicas de Programación 2.1.- Introducción: unos conceptos previos y primeros conceptos de la API Introducción La resolución de un problema con medios informáticos implica generalmente la siguiente secuencia

Más detalles

INICIACIÓN A LA PROGRAMACIÓN 1ª parte

INICIACIÓN A LA PROGRAMACIÓN 1ª parte TEMA 4 INICIACIÓN A LA PROGRAMACIÓN 1ª parte Qué es la programación? La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. En la actualidad,

Más detalles

Construcción de tablas de análisis sintáctico LL(1)

Construcción de tablas de análisis sintáctico LL(1) Construcción de tablas de análisis sintáctico LL(1) Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática Diego Centeno Gerardo Cortés Juan Diego Alfaro Resumen. A la medida en

Más detalles

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal. LENGUAJE DE PROGRAMACIÓN TURBO PASCAL El lenguaje de programación de alto nivel Pascal fue diseñado el 1968 por Niklaus Wirth con una finalidad eminentemente pedagógica El 1983, el Pascal fue estandarizado

Más detalles

Tema 1: Introducción

Tema 1: Introducción Tema 1: Introducción Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 1: Introducción 1 / 12 Definición de compilador Un compilador

Más detalles

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados

Más detalles

Introducción a la programación

Introducción a la programación Introducción a la programación Conceptos Básicos El objetivo fundamental de éste curso es enseñar a resolver problemas mediante una computadora. El programador de computadoras es antes que nada una persona

Más detalles

Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora

Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora Programación de Sistemas Unidad 1. Programación de Sistemas y Arquitectura de una Computadora Programación de Sistemas Arquitectura de una Computadora Componentes de un Sistema de Cómputo Un sistema está

Más detalles

Universidad Autónoma Metropolitana Unidad Azcapotzalco. División de Ciencias Básicas e Ingeniería. Licenciatura en Ingeniería en Computación

Universidad Autónoma Metropolitana Unidad Azcapotzalco. División de Ciencias Básicas e Ingeniería. Licenciatura en Ingeniería en Computación Universidad Autónoma Metropolitana Unidad Azcapotzalco División de Ciencias Básicas e Ingeniería Licenciatura en Ingeniería en Computación Propuesta de Proyecto Terminal Clasificación de servicios web

Más detalles

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Sintaxis Define la estructura del lenguaje Ejemplo: Jerarquía en

Más detalles

Processadors de Llenguatge II. Compiladores

Processadors de Llenguatge II. Compiladores Processadors de Llenguatge II Compiladores Que es un compilador Un traductor es cualquier programa que toma un texto escrito en un lengiaje y da como salida en otro lenguaje(llamado objeto) texto lenguaje

Más detalles

Fundamentos de Programación 2017-I

Fundamentos de Programación 2017-I Fundamentos de Programación 2017-I Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación C a través de un análisis

Más detalles

Unidad I: Organización del Computador. Ing. Marglorie Colina

Unidad I: Organización del Computador. Ing. Marglorie Colina Unidad I: Organización del Computador Ing. Marglorie Colina Arquitectura del Computador Atributos de un sistema que son visibles a un programador (Conjunto de Instrucciones, Cantidad de bits para representar

Más detalles

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas. LEX Estructura de un programa en LEX { definiciones { reglas { subrutinas del usuario Las definiciones y subrutinas son opcionales. El segundo es opcional pero el primer indica el comienzo de las reglas.

Más detalles

JavaCC Parte I. 1 Compiladores / Guía VII / Ciclo Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores.

JavaCC Parte I. 1 Compiladores / Guía VII / Ciclo Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores. 1 Compiladores / Guía VII / Ciclo 02-2016 Centro de Investigación y Transferencia de Tecnología JavaCC Parte I Contenido Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores En la presente

Más detalles

TEMA 1: INTRODUCCIÓN

TEMA 1: INTRODUCCIÓN 1 DISEÑO Y DESARROLLO DE COMPILADORES TEMA 1: INTRODUCCIÓN Qué es un Compilador? Un compilador no es más que un traductor, es decir, un programa que nos permite pasar información de un lenguaje a otro.

Más detalles

2.2 Nombres, Ligado y Ámbito

2.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

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Repaso TALF Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 La Jerarquía de Chomsky Cuatro niveles de lenguajes formales

Más detalles

Tema II: Metodología para la construcción de programas

Tema II: Metodología para la construcción de programas Tema II: Metodología para la construcción de programas Semestre: A-2012 Profesora: Nelly García Mora Agenda 1. Definición 2. Análisis E P S 3. Construcción de Algoritmos 4. Diagramas de Flujo 5. Codificación

Más detalles

Introducción a compiladores. Universidad Autónoma de Aguascalientes Prof. Eduardo Serna-Pérez Correo-e: eduardo.serna@gmail.com

Introducción a compiladores. Universidad Autónoma de Aguascalientes Prof. Eduardo Serna-Pérez Correo-e: eduardo.serna@gmail.com Introducción a compiladores Universidad Autónoma de Aguascalientes Prof. Eduardo Serna-Pérez Correo-e: eduardo.serna@gmail.com Introducción a compiladores Definición de compilador Historia de los compiladores

Más detalles

OPTIMIZACIÓN DE CÓDIGO

OPTIMIZACIÓN DE CÓDIGO OPTIMIZACIÓN DE CÓDIGO INTRODUCCION La finalidad de la optimización de código es producir un código objeto lo más eficiente posible. En algunos casos también se realiza una optimización del código intermedio.

Más detalles

UNIDAD 1 Introducción a los Algoritmos y Estructuras de Datos. 1.1 Definición de Algoritmo

UNIDAD 1 Introducción a los Algoritmos y Estructuras de Datos. 1.1 Definición de Algoritmo UNIDAD 1 Introducción a los Algoritmos y Estructuras de Datos 1.1 Definición de Algoritmo Algoritmo se define como un conjunto de instrucciones que la computadora debe seguir para resolver un problema.

Más detalles

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario

Más detalles

Tema 1: Introducción

Tema 1: Introducción Tema 1: Introducción Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 1: Introducción 1 / 12 Definición de compilador Un compilador

Más detalles

Estructuras de Datos Declaraciones Tipos de Datos

Estructuras de Datos Declaraciones Tipos de Datos Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación

Más detalles

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. MODELOS DE COMPUTACION I Preguntas Tipo Test Indicar si son verdaderas o falsas las siguientes afirmaciones: 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. 2.

Más detalles

Fundamentos de programación JAVA

Fundamentos de programación JAVA Pág. N. 1 Fundamentos de programación JAVA Familia: Editorial: Autor: Computación e informática Macro Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-238-7 N. de páginas: 296 Edición: 2. a 2014 Medida:

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

Construyendo Programas más Complejos

Construyendo 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 detalles

Lenguajes de programación Última modificación 2008/10

Lenguajes de programación Última modificación 2008/10 Lenguajes de programación Última modificación 2008/10 La Torre de Babel (1563) - Pieter Brueghel el Viejo 2008 Güimi (http://guimi.net) Esta obra está bajo una licencia "Reconocimiento-Compartir bajo la

Más detalles

FUNCIONAMIENTO DEL ORDENADOR

FUNCIONAMIENTO DEL ORDENADOR FUNCIONAMIENTO DEL ORDENADOR COMPUTACIÓN E INFORMÁTICA Datos de entrada Dispositivos de Entrada ORDENADOR PROGRAMA Datos de salida Dispositivos de Salida LOS ORDENADORES FUNCIONAN CON PROGRAMAS Los ordenadores

Más detalles

CICLOS DEL PROCESADOR

CICLOS DEL PROCESADOR UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del

Más detalles

SISTEMAS. UNIDAD VI Parte A ADMINISTRACION DE MEMORIA ING. AGUILERA SERGIO OMAR

SISTEMAS. UNIDAD VI Parte A ADMINISTRACION DE MEMORIA ING. AGUILERA SERGIO OMAR SISTEMAS OPERATIVOS UNIDAD VI Parte A ADMINISTRACION DE MEMORIA ING. AGUILERA SERGIO OMAR ESTRUCTURA DE MEMORIA CENTRAL Bus de Direcciones CPU v MMU n Bus de Datos Bus de Control 1 (r,w) m 2 n -1 palabras

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación

Más detalles

Guía práctica de estudio 05: Diagramas de flujo

Guía práctica de estudio 05: Diagramas de flujo Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de

Más detalles

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3 PROGRAMACION FUNCIONAL - Un lenguaje de programación funcional tiene gran flexibilidad, es conciso en su notación y su semántica es sencilla. El inconveniente principal de estos lenguajes ha sido la ineficiencia

Más detalles

Principios de Programación en Java

Principios de Programación en Java Programa: Curso - Taller Principios de Programación en Java Fechas: 20, 21, 22, 23 y 24 de junio, 2016 de 16:00 a 19:00 hrs Lugar: Preparatoria Vespertina No 1. Centro de Cómputo Instructor del Curso:

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Algoritmos y programas. Algoritmos y Estructuras de Datos I Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de

Más detalles

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa 1. Introducción. 2. Desarrollo de programas. 3. Sintaxis de un lenguaje ensamblador.

Más detalles

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina

Más detalles

41 Jornadas Argentinas de Informática Concurso de Trabajos Estudiantiles 2012. Categoría: Teoría de la Computación, Modelos Formales y Compiladores.

41 Jornadas Argentinas de Informática Concurso de Trabajos Estudiantiles 2012. Categoría: Teoría de la Computación, Modelos Formales y Compiladores. 41 Jornadas Argentinas de Informática Concurso de Trabajos Estudiantiles 2012 Categoría: Teoría de la Computación, Modelos Formales y Compiladores. Título: Implementación de un compilador de C- -. Autor:

Más detalles

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual. Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la

Más detalles

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)

Más detalles

Fundamentos de Programación Visual Basic

Fundamentos de Programación Visual Basic Pág. N. 1 Fundamentos de Programación Visual Basic Familia: Editorial: Tecnología de información y computación Macro Autor: Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-236-3 N. de páginas: 280

Más detalles

GENERACIÓN DE CÓDIGO INTERMEDIO

GENERACIÓN DE CÓDIGO INTERMEDIO INTRODUCCION GENERACIÓN DE CÓDIGO INTERMEDIO Esta fase del compilador no es en realidad una parte separada del compilador, la mayoría de los compiladores generan código como parte del proceso de análisis

Más detalles

Pruebas de escritorio

Pruebas de escritorio Pruebas de escritorio Es un proceso que consiste en hacer seguimiento a un algoritmo recorriendo sus líneas simulando el funcionamiento del procesador del computador. Ejemplo: Realizar un algoritmo que

Más detalles

Unidad I: Análisis semántico

Unidad I: Análisis semántico Unidad I: Análisis semántico 1.1 Arboles de expresiones Los árboles de expresiones representan el código de nivel del lenguaje en forma de datos. Los datos se almacenan en una estructura con forma de árbol.

Más detalles

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Descripción y Contenido del Curso. Programación C++ Capacity Academy. Descripción y Contenido del Curso Programación C++ Capacity Academy Educación en Tecnología de la Información Online, Efectiva y Garantizada Qué aprenderá si toma este Curso? En este curso aprenderás todo

Más detalles

UNIDAD 1. COMPONENTES DEL COMPUTADOR

UNIDAD 1. COMPONENTES DEL COMPUTADOR UNIDAD 1. COMPONENTES DEL COMPUTADOR OBJETIVO Nº 1.1: DEFINICIÓN DE COMPUTADOR: Es un dispositivo electrónico compuesto básicamente de un procesador, una memoria y los dispositivos de entrada/salida (E/S).

Más detalles

Curso de Programación Avanzada en C

Curso de Programación Avanzada en C Curso de Programación Avanzada en C Copyright, 1996 Universidad Sim on Bol ivar 1 Prof. Mariela J. Curiel Contenido del Curso Conceptos BásicosB Estructuras de Control Arreglos Otros tipos de datos derivados

Más detalles

Programación Avanzada

Programación Avanzada Programación Avanzada Instructivo de Compilación 1 1 Índice 1 ÍNDICE... 2 2 INTRODUCCIÓN... 3 3 HERRAMIENTAS... 3 3.1 SINTAXIS DE LOS COMANDOS GCC Y G++... 3 3.2 OTRAS HERRAMIENTAS:... 4 3.3 EJEMPLOS:...

Más detalles

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU) INDICE Capitulo 1. Qué es un computador? 1.1. Introducción 1 1.2. El computador como dispositivo electrónico 2 1.3. Cómo se procesa la información? 3 1.4.Diagrama de bloques de un computador 1.4.1. Información

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

P L A N I F I C A C I O N

P L A N I F I C A C I O N P L A N I F I C A C I O N ESTABLECIMIENTO: INSTITUTO SUPERIOR JUJUY CARRERA: TECNICATURA SUPERIOR EN INFORMATICA CON ORIENTACION EN SISTEMAS DE INFORMACION ASIGNATURA: HS. CATEDRA: MODALIDAD: PROFESOR:

Más detalles

Carrera: SCC - 0425 4-2-10. Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Carrera: SCC - 0425 4-2-10. Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos. 1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Programación de sistemas Ingeniería en Sistemas Computacionales SCC - 0425 4-2-10

Más detalles

Capítulo 5: Traducción Dirigida por Sintaxis

Capítulo 5: Traducción Dirigida por Sintaxis Capítulo 5: Traducción Dirigida por Sintaxis Javier Carvajal Universidad de Costa Rica, Escuela de Ciencias de la Computación e Informática, San José, Costa Rica, francisco.carvajal@ecci.ucr.ac.cr and

Más detalles

Algoritmos y Lenguajes de Programación

Algoritmos y Lenguajes de Programación Introducción y horario Algoritmos y Lenguajes de Programación 543242-2 mariomedina@udec.cl Código: 543242-2 Carrera: Ing. Civil Electrónica Clases 7 de Marzo a 28 de Junio Horario clases Martes, 9:10 a

Más detalles

TEMA 2. CONCEPTOS BÁSICOS DE ALGORÍTMICA

TEMA 2. CONCEPTOS BÁSICOS DE ALGORÍTMICA TEMA 2. CONCEPTOS BÁSICOS DE ALGORÍTMICA 2.1 Deición de Algoritmo Un algoritmo es una secuencia precisa de operaciones (pasos) que resuelven un problema en un tiempo ito. Solución(problema) ALGORITMO(Solución(problema))

Más detalles

Tema 3. Análisis sintáctico descendente

Tema 3. Análisis sintáctico descendente Departamento de Tecnologías de la Información Tema 3 Análisis sintáctico Ciencias de la Computación e Inteligencia Artificial Índice 3.1 Características del análisis sintáctico 3.2 Gramáticas libres de

Más detalles

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE Código: F004-P006- GFPI Nº 23 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE Programa de Formación: Técnico en programación de software Código:228120 Versión: 102 Nombre del Proyecto: SISTEMA DE INFORMACIÓN

Más detalles

Programación con C Intermedio

Programación con C Intermedio Programa de Capacitación en Cómputo Semestre 2016-2 Programación con C Intermedio Instructor: P. I. Gutiérrez Chávez Cristóbal INFORMACIÓN GENERAL El lenguaje C es un lenguaje de programación estructurada

Más detalles

Lenguajes de Programación. Juan Zamora O. Semestre II Nombres, Ambitos y Ligados

Lenguajes de Programación. Juan Zamora O. Semestre II Nombres, Ambitos y Ligados Lenguajes de Programación Nombres, Ambitos y Ligados Juan Zamora O. Semestre II - 2013 Nombres, Ambitos y Ligados Aspectos semánticos fundamentales de las variables. Conceptos a revisar: Abstracción Nombres

Más detalles

Tema: Tabla de Símbolos

Tema: Tabla de Símbolos Compiladores. Guía 6 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Tabla de Símbolos Contenido En esta guía se desarrollará una tabla de símbolos y se asociará al analizador

Más detalles

Colección de Tesis Digitales Universidad de las Américas Puebla. Romero Martínez, Modesto

Colección de Tesis Digitales Universidad de las Américas Puebla. Romero Martínez, Modesto 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto El procesamiento de consultas en un sistema multibase de datos es la pieza mas importante para la operación del

Más detalles