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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Transcripción

1 Introducción a compiladores Universidad Autónoma de Aguascalientes Prof. Eduardo Serna-Pérez Correo-e:

2 Introducción a compiladores Definición de compilador Historia de los compiladores Tipos de traductores Fases de un compilador Agrupamiento de fases Compiladores cruzados Herramientas automáticas

3 Definición de compilador Los compiladoresson programas de computadora que traducende un lenguaje a otro. Un compilador toma como su entrada un programa escrito en lenguaje fuentey produce un programa equivalente escrito en lenguaje objeto. Lenguaje Fuente Traductor Lenguaje Destino Mensajes de error

4 Definición de compilador Generalmente al lenguaje fuente se le asocia como lenguaje de alto nivel, mientras al lenguaje objeto se el conoce como código objeto (código de maquina) escrito específicamente para una maquina objeto. A lo largo del proceso de traducción el compilador debe informar la presencia de errores en el lenguaje fuente. Diseñar y desarrollar un compilador, no es tarea fácil, y quizás pocos profesionales de la computación se vean involucrados en esta tarea. No obstante, los compiladores se utilizan en casi todas las formas de la computación y cualquiera involucrado en esta área debería conocer la organización y el funcionamiento básico de un compilador.

5 Historia de los Compiladores A finales de la década de 1940, comenzaron a construirse las primeras computadoras digitales y fue necesario implementar un lenguaje capas de realizar los cálculos, es aquí donde aparece el lenguaje de maquinaque representaba secuencias de códigos numéricos: C (instrucción que mueve el número dos a la ubicación 0000) Desafortunadamente este lenguaje era tedioso de seguir y complicado de mantener, por lo que esta forma de codificación fue reemplazada por el lenguaje ensamblador, en el cual las instrucciones y las localidades de memoria son formas simbólicas. Un ensamblador traduce de los códigos simbólicos a lenguaje de maquina. Aún con esta mejora, el lenguaje ensamblador sigue siendo demasiado difícil de mantener: MOV X, 2 (instrucción en ensamblador equivalente a la anterior)

6 Historia de los Compiladores En este punto se presenta la necesidad de lenguajes que permitan escribir los programas de forma concisa, similar a una notación matemática, y que se pudieran traducir a código ejecutable para una máquina dada: X = 2 En 1950, G. M. Hooperacuña el termino compiladory aparecen los primeros trabajos sobre compiladores relacionados con la traducción de formulas aritméticasa código de máquina. John Backuslideró un grupo de trabajo en IBM para realizar de un traductor de código máquina a fórmulas matemáticas. Resultando con gran éxito: la especificación de un lenguaje de alto nivel (FORTRAN, FORmuleTRANslation) Trabajaron 18 personas durante mas de un año en el proyecto. Fúeun compilador hecho ad-hoc(a puro corazón), pues no existía una teoría formal, sino que se iban resolviendo las construcciones una a una, para cada situación particular.

7 Historia de los Compiladores Noam Chomskycomienza sus estudios sobre la estructura del lenguaje natural. Sus estudios lo condujeron a la clasificación de los lenguajes de acuerdo a una jerarquía de sus gramáticas, además sus estudios sobre los algoritmos de reconocimiento derivaron en una automatización del proceso de traducción mas eficiente. 1960, se diseña el lenguaje LISP. En un principio, el código LISP se traducía manualmente a código máquina. Se escribió en LISP un programa capaz de interpretar programas LISP, que se tradujo manualmente a código de máquina, construyendo de este modo un intérprete ejecutable de LISP. Knuth desarrolla la mayoría de las técnicas de análisis sintáctico. 1970, se presentan los mayores avances en el área de lenguajes de programación. Aparecen los primeros programas que automatizan los procesos de análisis léxico y sintáctico. Surgiendo la llamada Torre de Babeldebido a la proliferación de la teoría para la construcción de compiladores.

8 Historia de los Compiladores NiklausWirth, diseña Pascal, pensado para la enseñanza. Wirthpropone el concepto de representación intermedia de código, separando el proceso de traducción en dos fases: el front-endencargada de analizar el programa fuente (operaciones dependientes sólo del lenguaje fuente) y el back-end encargada de generar el código para la máquina objeto. 1980, comienzan a proliferar las técnicas de mejoramiento de código (optimización), se consolida y prolifera el concepto de asignación y liberación de memoria dinámica. La programación orientada a objetoses extensamente utilizada y madura. 1990, los lenguajes de programación y compiladores son muy similares a lo que tenemos actualmente, surgen los ambientes de desarrollo, los lenguajes interpretados comienza a ganar terreno en aplicaciones de Internet y el código intermedio se vuelve a poner de moda.

9 Tipos de Traductores CompiladorPrograma que convierte un archivo de lenguaje de programación a su correspondiente en lenguaje objeto. Siendo en realidad es un tipo especifico de traductor. EnsambladorPrograma que convierte de lenguaje mnemonicoa lenguaje máquina, generando un archivo con el código objeto equivalente al código fuente completo, junto con información necesaria para el montaje. Formadores de Textotoman como entrada una cadena de caracteres que incluye el texto a componer y órdenes (TAG s) para indicar capítulos, secciones, párrafos, enumeraciones, figuras, formulas, tablas, etc. (Latex, Html). InterpretesEjecutan las instrucciones del programa según se vallan presentando. Necesitan menos memoria, pero son más lentos que los compiladores (LISP, Prolog). Históricamente, se pusieron de moda en los primeros años porque los recursos de memoria eran escasos. Permiten añadir código dinámicamente durante la ejecución.

10 Tipos de Traductores Lenguajes de programación interpretadosestán diseñados para ser ejecutados por medio de interprete a partir de un código pre-compilado. Por ejemplo Java es compilado para posteriormente ser ejecutado por un traductor del lenguaje objeto denominado Java Virtual Machine. Mientas que los lenguajes de la plataforma.net compilan en una forma intermedia (CIL), que posteriormente puede ser recompilado a código de maquina nativo o interpretado por una maquina virtual. Lenguajes como Pythony Java emplean representaciones intermedias de código para ser ejecutadas, mientras que lenguajes como Rubyemplean un árbol de sintaxis abstracta como representación intermedia.

11 Ventajas del compilador Tipos de Traductores Se compila una vez, se ejecuta n-veces En bucles, la compilación genera código equivalente al bucle pero un interprete se traduce tantas veces una línea como veces se repite el bucle El compilador tiene una visión global del programa, por lo que la información de mensajes de errores es más detallada. Ventajas del intérprete Un interprete necesita menos memoria que un compilador Permite una mayor interactividad con el código en tiempo de desarrollo.

12 Tipos de Traductores Ventajas del compilador - intérprete Proporcionan algo de flexibilidad extra Son independientes de la plataforma en la que se ejecuten Permiten un mecanismo de reflexión Tipos de datos altamente dinámicos Gestión de memoria dinámico Fácilmente depurables y reducidos en tamaño

13 Fases de un Compilador Un compilador se compone internamente de varias etapas, o fases, que realizan operaciones lógicas. Es útil pensar en estas fases como piezas separadas dentro del compilador, y pueden en realidad escribirse como operaciones codificadas separadamente aunque en la práctica a menudo se integran. A continuación describiremos brevemente cada un de ellas: Análisis Léxico Análisis Sintáctico Análisis Semántico Generación y Optimización de código intermedio Generación de código objeto

14 Fases de Compilación Código fuente Fase de análisis Análisis Léxico Componentes léxicos / Tokens Árbol sintáctico Análisis Sintáctico Tabla de símbolos Análisis Semántico Árbol sintáctico con anotaciones Código intermedio Código objeto Generación / Optimización de código intermedio Generación / Optimización de código objeto Fase de síntesis Gestor de errores

15 Fases de Compilación Analizador léxico: lee la secuencia de caracteres de izquierda a derecha del programa fuente y agrupalas secuencias de caracteres en unidadescon significado propio(componentes léxicos o tokens en ingles). Las palabras clave, identificadores, operadores, constantes numéricas, signos de puntuación como separadores de sentencias, llaves, paréntesis, etc., son diversas clasificaciones de componentes léxicos. La estructura léxica la modelaremos mediante expresiones regulares. Por ejemplo la siguiente instrucción en código C: a[indice] = 4 + 2; Genera los siguientes componentes léxicos: a identificador [ corchete de apertura indice Identificador ] corchete de cierre = operador de asignación 4 numero + operador suma 2 numero ; punto y coma

16 Fases de Compilación Análisis sintáctico: determina si la secuencia de componentes léxicos sigue la sintaxisdel lenguaje y obtiene la estructurajerárquicadel programa en forma deárbol, donde los nodos son las construcciones de alto nivel del lenguaje. Se determinan las relaciones estructurales entre los componentes léxicos, esto es semejante a realizar el análisis gramaticalsobre una frase en lenguaje natural. La estructura sintáctica la definiremos mediante las gramáticas independientes del contexto. Como ejemplo consideremos la línea de código C anterior. Representa un elemento estructural denominado expresión, la cual es una expresión de asignacióncompuesta de una expresión de subíndicea la izquierda y una expresión aritmética a la derecha (árbol de análisis gramatical).

17 Fases de Compilación expresión expresión asignación expresión = expresión expresión subíndice expresión aditiva expresión [ expresión ] expresión + expresión identificador a identificador indice numero 4 numero 2

18 Fases de Compilación Los nodos internos del árbol de análisis gramatical están etiquetados con los nombres de las estructuras que representan y las hojas del árbol representan la secuencia de tokens. Los árboles de análisis gramatical son útiles para visualizar la sintaxis de un programa pero no es eficaz en la representación de esa estructura. Los analizadores sintácticos tienden a generar un árbol sintáctico(una simplificación de la información contenida en un árbol de análisis gramatical). Para nuestro ejemplo observamos que en el árbol sintácticose han eliminado nodos, esto debido a que sabiendo la naturaleza de la expresión, ya no es necesario contar con ciertos tokens. = [ ] + identificador a identificador indice numero 4 numero 2

19 Fases de Compilación Análisis semántico: realiza las comprobaciones necesarias sobre el árbol sintáctico para determinar el correcto significado del programa. Las tareas básicas a realizar son: La verificación e inferencia de tipos en asignaciones y expresiones, la declaración del tipo de variables y funciones antes de su uso, el correcto uso de operadores, el ámbito de las variables y la correcta llamada a funciones. Nos limitaremos al análisis semántico estático(en tiempo de compilación), donde es necesario hacer uso de la Tabla de símbolos, como estructura de datos para almacenar información sobre los identificadores que van surgiendo a lo largo del programa. El análisis semántico suele agregar atributos (como tipos de datos) a la estructura del árbol semántico.

20 Fases de Compilación El analizador semántico registrara el árbol sintáctico con los tipos de datos de las sub-expresiones y verificara que la asignación tiene sentido para los tipos, en caso contrario mandara un mensaje de error en correspondencia de tipos. De esta forma se obtiene un árbol sintáctico con anotaciones. Siguiendo con el ejemplo de la expresión en C, el analizador semántico extrae la información de que aes una arreglo de valores enteros y que indicees una variable entera. = [ ] Tipo : entero + Tipo : entero a puntero a enteros Tipo: entero indice Tipo : entero 4 constante Tipo : entero 2 constante Tipo : entero

21 Fases de Compilación Generación y optimización de código intermedio: la optimización consiste en la calibración del árbol sintáctico donde ya no aparecen construcciones de alto nivel. Generando un código mejorado, ya no estructurado, más fácil de traducir directamente a código ensamblador o máquina, compuesto de un código de tres direcciones (cada instrucción tiene un operador, y la dirección de dos operándoos y un lugar donde guardar el resultado), también conocida como código intermedio. La etapa de optimización sólo dependen del lenguaje fuente (y no de la máquina), se busca principalmente: eliminar sub-expresiones comunes, identificar código muerto, sustituir operaciones aritméticas, cálculo previo de constantes, variables de inducción, propagación de copias o código inalcanzable. Suele ser una fase lenta y compleja.

22 Fases de Compilación Siguiendo con el ejemplo de la expresión de asignación, el generador/optimizador, colapsara la expresión aditiva generando una constante 6. En ocasiones estas adecuaciones pueden realizarse en el árbol directamente, pero generalmente resulta mas fácil hacerlo de manera lineal en una estructura de código de tres direcciones (cuadruplos). código optimizado a[indice] = 6 código intermedio t1 = indice * elem_size(a) t2 = &a + t1 *t3 = 6

23 Fases de Compilación Generación de código objeto: toma como entrada la representación intermedia y genera el código objeto. La optimización depende de la máquina, es necesario conocer el conjunto de instrucciones, la representación de los datos (número de bytes), modos de direccionamiento, número y propósito de registros, jerarquía de memoria, encauzamientos, etc. Suelen implementarse a mano, y son complejos porque la generación de un buen código objeto requiere la consideración de muchos casos particulares. También se está investigando la creación de generadores de código automáticos. La idea es automáticamente hacer corresponder una representación intermedia a plantillas de instrucciones objeto. Permitiendo generar fácilmente el código objeto para una nueva máquina objeto, cambiando el conjunto de plantillas. Por ejemplo GNU GCC posee plantillas para mas de 10 arquitecturas más habituales de ordenadores.

24 Fases de Compilación Finalmente para nuestro ejemplo debemos decidir ahora cuantos enteros se almacenarán para generar el código del arreglo, para este ejemplo emplearemos modos de direccionamiento propios de C, generando el código objeto en un lenguaje ensamblador hipotético. MOV R0, t1 ;; valor de index -> MOV R1, &a ADD R1, R0 MOV *R1, 6 ;; dirección de a -> R1 ;; sumar R0 a R1 ;; constante 6 -> dirección en R1

25 Fases de Compilación Tabla de Símbolos: es una estructura tipo diccionario con operaciones de inserción, borrado y búsqueda, que almacena información sobre los símbolos que van apareciendo a lo largo del programa como son: los identificadores (variables y funciones) Etiquetas tipos definidos por el usuario (arreglos, registros, etc.) Además almacena el tipo de dato, método de paso de parámetros, tipo de retorno y de argumentos de una función, el ámbito de referencia de identificadores y la dirección de memoria. Interacciona tanto con el analizador léxico, sintáctico y semántico que introducen información conforme se procesa la entrada. La fase de generación de código y optimización también la usan.

26 Fases de Compilación Tabla de Símbolos: es una estructura tipo diccionario con operaciones de inserción, borrado y búsqueda, que almacena información sobre los símbolos que van apareciendo a lo largo del programa como son: los identificadores (variables y funciones) Etiquetas tipos definidos por el usuario (arreglos, registros, etc.) Además almacena el tipo de dato, método de paso de parámetros, tipo de retorno y de argumentos de una función, el ámbito de referencia de identificadores y la dirección de memoria. Interacciona tanto con el analizador léxico, sintáctico y semántico que introducen información conforme se procesa la entrada. La fase de generación de código y optimización también la usan.

27 Fases de Compilación Gestor de errores: detecta e informa de errores que se produzcan durante la fase de análisis. Debe generar mensajes significativos y reanudar la traducción. Encuentra errores: En tiempo de compilación: errores léxicos (ortográficos), sintácticos (construcciones incorrectas) y semánticos (p.ej. errores de tipo) En tiempo de ejecución: direccionamiento de vectores fuera de rango, divisiones por cero, etc. De especificación/diseño: compilan correctamente pero no realizan lo que el programador desea. Se trataran sólo errores estáticos (en tiempo de compilación). Respecto a los errores en tiempo de ejecución, es necesario que el traductor genere código para la comprobación de errores específicos, su adecuado tratamiento y los mecanismos de tratamiento de excepciones para que el programa se continúe ejecutando.

28 Fases de Compilación La mayoría de los compiladores son dirigidos por la sintaxis, es decir, el proceso de traducción es dirigido por el analizador sintáctico. El análisis sintáctico genera la estructura del programa fuente a través de tokens. El análisis semántico proporcionan el significado del programa basándose de la estructura del árbol de análisis sintáctico. Las fases de análisis léxico y análisis sintáctico se pueden automatizar de manera relativamente fácil, las verdaderas dificultades en la construcción de compiladores son el análisis semántico, la generación y la optimización de código. El número de pasadas, es decir, el número de veces que hay que analizar el código fuente, esta en función del grado de optimización. Típicamente se realiza una pasada para realizar el análisis léxico y sintáctico, otra pasada para el análisis semántico y optimización del lenguaje intermedio y una tercera pasada para generación de código y optimizaciones dependientes de la máquina.

29 Estructuras de datos Empleadas Componentes léxicos: estructura tipo registro con dos campos, componente léxico representado por una enumeración y el lexema con una cadena de caracteres. Árbol sintáctico: es una representación de árbol de la estructura sintáctica abstracta del código fuente escrito en cierto lenguaje de programación. Cada nodo del árbol denota una construcción que ocurre en el código fuente. Tabla de Símbolos: contiene información sobre los identificadores, funciones, variables, ámbito de referencia de identificadores, constantes numéricas y literales, tipos de datos, o incluso la dirección de memoria (tabla Hash). Código intermedio: se implementa como una lista de registros, donde cada registro tiene cuatro campos (operador, la dirección de los operándoos y del resultado). Es eficiente para mover código para el proceso de optimización posterior.

30 Agrupamiento de fases En el modelo de análisis y síntesis las operaciones del compilador que analizan el programa fuente y calculan sus propiedades se clasifican como análisisdel compilador, mientras que las operaciones involucradas con la traducción a código objeto se conoce como síntesis del compilador. Etapa de análisis: Análisis léxico Análisis sintáctico Análisis semántica Etapa de síntesis: Optimización y generación de código intermedio Generación de código objeto La intención de separa las etapas de análisis y síntesis, es principalmente para realizar mantenimientos y actualizaciones eficientes.

31 Compilador Cruzado Es un compilador que genera código ejecutable para una plataforma distinta a aquella en la que se ejecuta Es muy común construir un compilador en una plataforma Linux, empleando un lenguaje ANSI C++ para una sintaxis tipo Basic que genere código objeto para Windows ANSI C++ Basic ANSI C++ Basic Linux Linux Windows Windows Windows

32 Compilador Cruzado Existe también la variante que implica un compilador para maquina abstracta, que facilita la transportabilidad de compiladores de un lenguaje fuente a varias maquina objeto. La construcción de este tipo de compiladores se realiza en dos etapas: front-endo etapa inicial: Las operaciones dependen sólo del lenguaje fuente. Incluye: análisis léxico, sintáctico y semántico, la creación de la Tabla de Símbolos, generación de código intermedio y algunas optimizaciones. Además, del manejo de errores de cada fase. back-endo etapa final: Las operaciones dependen sólo de la máquina objeto. Incluye: generación de código objeto y optimizaciones dependientes de la máquina. Depende de los modos de direccionamiento, conjunto de instrucciones de la máquina, número de registros, arquitectura de la máquina, sistema operativo, etc.

33 Principal ventaja de este método: Compilador Cruzado Si se cambia de lenguaje fuente, entonces se reescribe el front-end. Si se cambia la máquina objeto, entonces se reescribe el back-end. Si aparece una nueva arquitectura, basta con desarrollar un traductor del lenguaje intermedio a esa nueva máquina. Código fuente Front-End Código intermedio Back-End Código objeto

34 Compilador Cruzado

35 Herramientas Automáticas Son programas de ayuda en el proceso de escritura de compiladores: sistemas generadores de traductores. También se les conoce como compilerwritingtools, compilergenerators, compiler-compilers. A continuación mencionaremos los mas conocidos. Generadores de analizadores léxicos: a partir de una especificación basada en expresiones regulares. Lex/ Flex. Generadores de analizadores sintácticos: a partir de una entrada que es la gramática independiente del contexto que representa la estructura sintáctica del lenguaje. Yacc/ Bison. Generadores de código: con rutinas para la generación del árbol de análisis sintáctico y para su recorrido. En cada nodo se especifican las acciones para su traducción a código objeto correspondiente.

36 Bibliografía Aho, A.V., Sethi, R., Ullman, J.D. (1990), Compiladores: principios, técnicas y herramientas, capitulo 1, páginas: 1-25, Louden, K.C. (1997), Construcción de Compiladores: Principios y práctica, capitulo 1, páginas: 1-27.

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

Procesadores de lenguaje Tema 1: Introducción a los compiladores

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

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes INDICE Parte I. Conceptos 1 1. El estudio de los lenguajes de programación 1.1. Por qué estudiar lenguajes de programación? 2 1.2. Breve historia de los lenguajes de programación 1.2.1. Desarrollo de los

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

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

4 o Ingeniería Informática

4 o Ingeniería Informática Esquema del tema 1. Introducción 4 o Ingeniería Informática II26 Procesadores de lenguaje Estructura de los compiladores e intérpretes 2. Etapas del proceso de traducción 3. La interpretación 4. La arquitectura

Más detalles

PROGRAMACIÓN BÁSICA DE LA COMPUTADORA. 1 Introducción. Tabla 1: Instrucciones MIPS

PROGRAMACIÓN BÁSICA DE LA COMPUTADORA. 1 Introducción. Tabla 1: Instrucciones MIPS PROGRAMACIÓN BÁSICA DE LA COMPUTADORA 1 Introducción Un sistema de computadora total incluye tanto circuitería (hardware) como programación (software). El hardware consta de los componentes físicos y todo

Más detalles

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación. Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden

Más detalles

GENERACIÓN DE CÓDIGO

GENERACIÓN DE CÓDIGO GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información

Más detalles

Tema 1: Computadores y Programas

Tema 1: Computadores y Programas Tema 1: Computadores y Programas Ingeniería Informática Ingeniería Técnica en Informática de Sistemas Ingeniería Técnica en Informática de Gestión Departamento de Ciencia de la Computación e I.A. Universidad

Más detalles

Bloque II. Elementos del lenguaje de programación Java

Bloque II. Elementos del lenguaje de programación Java Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida

Más detalles

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Entre los más conocidos editores con interfaz de desarrollo tenemos: Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje

Más detalles

Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y

Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y 1. Paradigmas de programación Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y automáticamente convertibles

Más detalles

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.

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

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 Programa: Algoritmo (secuencia no ambigua, finita y ordenada de instrucciones para la resolución de un determinado problema) traducido

Más detalles

construcción de programas Prof. Eliana Guzmán U.

construcción de programas Prof. Eliana Guzmán U. Unidad II. Metodología para la construcción de programas Prof. Eliana Guzmán U. Semestre: A-2015 Introducción Resolver un problema con una computadora conduce a la escritura de un programa y a su ejecución.

Más detalles

Instituto Tecnológico de Celaya

Instituto Tecnológico de Celaya LENGUAJES Lenguaje es el empleo de notaciones, señales y vocales (voz, palabras) para expresar ideas, comunicarse, y establecer relaciones entre los seres humanos. Un lenguaje no sólo consta de palabras,

Más detalles

DIAGRAMAS DE FLUJO: DFD

DIAGRAMAS DE FLUJO: DFD DIAGRAMAS DE FLUJO: DFD DFD es un programa de libre disposición para ayuda al diseño e implementación de algoritmos expresados en diagramas de flujo (DF). Además incorpora opciones para el depurado de

Más detalles

Programa Analítico 2010. Asignatura: Resolución de problemas de Optimización en Entornos Industriales

Programa Analítico 2010. Asignatura: Resolución de problemas de Optimización en Entornos Industriales Programa Analítico 2010 Asignatura: Resolución de problemas de Optimización en Entornos Industriales CARRERA: LCC AÑO: 5º CREDITO HORARIO: 8 hs áulicas semanales DESPLIEGUE (primer semestre, segundo semestre

Más detalles

Generación de Código Intermedio

Generación de Código Intermedio Generación de Código Intermedio Francisco Rodríguez Zamora Universidad de Costa Rica, Escuela de Ciencias de Computación e Informática San José, Costa Rica francisco.rodriguez@ecci.ucr.ac.cr Jonathan Calderón

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

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Estructura de Datos. Unidad I Tipos de Datos

Estructura de Datos. Unidad I Tipos de Datos Estructura de Datos Unidad I Tipos de Datos Conceptos Básicos Algoritmo: es una secuencia finita de pasos o instrucciones ordenadas crono-lógicamente que describen un método para resolver un problema específico.

Más detalles

ANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos.

ANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos. ANÁLISIS SEMÁNTICO El análisis semántico dota de un significado coherente a lo que hemos hecho en el análisis sintáctico. El chequeo semántico se encarga de que los tipos que intervienen en las expresiones

Más detalles

Curso PHP Módulo 1 R-Luis

Curso PHP Módulo 1 R-Luis Lenguaje PHP Introducción Archivos HTML y PHP: Crear un archivo php es tan sencillo como cambiarle la extensión a un archivo html, por ejemplo podemos pasar de index.html a index.php sin ningún inconveniente.

Más detalles

Introducción a los Tipos Abstractos de Datos

Introducción a los Tipos Abstractos de Datos Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de

Más detalles

Figura 4.1 Clasificación de los lenguajes de bases de datos

Figura 4.1 Clasificación de los lenguajes de bases de datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 Módulo 1. Fundamentos de Computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 1 CONTENIDO Tema 1. Introducción

Más detalles

COMPILADORES Teoría e implementación. Jacinto Ruiz Catalán

COMPILADORES Teoría e implementación. Jacinto Ruiz Catalán COMPILADORES Teoría e implementación Jacinto Ruiz Catalán COMPILADORES. Teoría e implementación Jacinto Ruiz Catalán ISBN: 978-84-937008-9-8 EAN: 9788493700898 Copyright 2010 RC Libros RC Libros es un

Más detalles

SOLUCIÓN: a) Signo y magnitud:

SOLUCIÓN: a) Signo y magnitud: 1. Resolver las siguientes conversiones razonando los pasos seguidos (total 3 a. Dado el número 18525 expresado en decimal, calcular su representación numérica en signo y magnitud, en complemento a 2 y

Más detalles

Compilador del lenguaje MOOL que genera código Objective Caml

Compilador del lenguaje MOOL que genera código Objective Caml Compilador del lenguaje MOOL que genera código Objective Caml Ruben Gonzalez Castro 1 1 Instituto Tecnológico de Culiacán, Av. Juan de Dios Batíz s/n Col. Guadalupe, Culiacán, Sin. 80220 México Tel. 667-713

Más detalles

Introducción a la Programación en Java. Page 1

Introducción a la Programación en Java. Page 1 Introducción a la Programación en Java Page 1 Qué es Java? Java es un lenguaje de programación de propósito general, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias

Más detalles

Inicio de MO Inicio de MD Inicio de MF. Documento de Análisis. Base de datos de las especificaciones OMT. MO, MD, MF Detallados. Librería de Clases

Inicio de MO Inicio de MD Inicio de MF. Documento de Análisis. Base de datos de las especificaciones OMT. MO, MD, MF Detallados. Librería de Clases 3.2 TÉCNICA DE MODELADO DE OBJETOS (OMT) (JAMES RUMBAUGH). 3.2.1 Introducción. En este documento se trata tanto el OMT-1 como el OMT-2, el primero contenido en el Libro Modelado y Diseño Orientado (Metodología

Más detalles

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos.

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos. Introducción a la ciencia de la computación y a la programación 1. La computadora CONTENIDOS 2. Entidades primitivas para el desarrollo de algoritmos. 3. Metodología a seguir para la resolución de problemas

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

La Arquitectura de las Máquinas Virtuales.

La Arquitectura de las Máquinas Virtuales. La Arquitectura de las Máquinas Virtuales. La virtualización se ha convertido en una importante herramienta en el diseño de sistemas de computación, las máquinas virtuales (VMs) son usadas en varias subdiciplinas,

Más detalles

GUÍA DOCENTE PROCESADORES DE LENGUAGE

GUÍA DOCENTE PROCESADORES DE LENGUAGE Año académico 2015-16 GUÍA DOCENTE PROCESADORES DE LENGUAGE Profesorado: Jordi Planes Cid Maria Teresa Alsinet Bernadó Información general de la asignatura Denominación Carácter PROCESADORES DE LENGUAGE

Más detalles

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. BASES DE DATOS Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. La creación de una base de datos debe ser realizada cuidadosamente procurando

Más detalles

Procesadores de lenguaje Tema 5 Comprobación de tipos

Procesadores de lenguaje Tema 5 Comprobación de tipos Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,

Más detalles

Programación de Sistemas

Programación de Sistemas 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

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8.

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8. TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8. 1.) (HOLUB). Escribir un traductor que reconozca definiciones de C siguiendo el estilo antiguo, tal como: prueba(uno, dos, tres, cuatro,

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS Clase 1. Introducción Profesor: Diego Sánchez Gómez Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Introducción. 1. Lenguajes de máquina 2. Lenguajes de ensamblador 3. Lenguajes de alto nivel

Introducción. 1. Lenguajes de máquina 2. Lenguajes de ensamblador 3. Lenguajes de alto nivel Introducción Los programadores escriben en diversos lenguajes de programación, algunos de ellos se pueden entender directamente, pero otros requieren pasos de traducción. Se utilizan cientos de lenguajes

Más detalles

Tema 4. Gestión de entrada/salida

Tema 4. Gestión de entrada/salida Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada

Más detalles

UNIDAD I: LÓGICA PROPOSICIONAL

UNIDAD I: LÓGICA PROPOSICIONAL UNIDAD I: LÓGICA PROPOSICIONAL ASIGNATURA: INTRODUCCIÓN A LA COMPUTACIÓN CARRERAS: LICENCIATURA Y PROFESORADO EN CIENCIAS DE LA COMPUTACIÓN DEPARTAMENTO DE INFORMÁTICA FACULTAD DE CIENCIAS FÍSICO MATEMÁTICA

Más detalles

Procesadores Superescalares: Paralelismo Explícito a Nivel de Instrucción

Procesadores Superescalares: Paralelismo Explícito a Nivel de Instrucción Tema 8 Procesadores Superescalares: Paralelismo Explícito a Nivel de Instrucción IA-64 es una arquitectura de 64 bits desarrollada conjuntamente por Intel y HP (Hewlett- Packard). Está basado en una tecnología

Más detalles

JAVA 8 Los fundamentos del lenguaje Java (con ejercicios prácticos corregidos)

JAVA 8 Los fundamentos del lenguaje Java (con ejercicios prácticos corregidos) Presentación 1. Historia 11 1.1 Por qué Java? 11 1.2 Objetivos del diseño de Java 12 1.3 Auge de Java 13 2. Características de Java 14 2.1 El lenguaje de programación Java 14 2.1.1 Sencillo 15 2.1.2 Orientado

Más detalles

INDICE Programación Introducción Capitulo 21 BASIC Capitulo 22. COBOL Capitulo 23 DELPHI Capitulo 24. FORTRAN Capitulo 25.

INDICE Programación Introducción Capitulo 21 BASIC Capitulo 22. COBOL Capitulo 23 DELPHI Capitulo 24. FORTRAN Capitulo 25. INDICE Programación Introducción 706 Capitulo 21 BASIC 711 Introducción 711 Sintaxis 713 Procedimientos y control de flujo 713 Tipos de datos 714 Disponibilidad y variantes del dialecto 714 Capitulo 22.

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

Más detalles

Presentación del Curso Virtual PROGRAMACIÓN WEB PHP CON MYSQL BÁSICO

Presentación del Curso Virtual PROGRAMACIÓN WEB PHP CON MYSQL BÁSICO Presentación del Curso Virtual PROGRAMACIÓN WEB PHP CON MYSQL BÁSICO INNOVATIVA CENTRO DE TRANSFERENCIA Y DESARROLLO TECNOLÓGICO ESPE CECAI Capacitación Virtual La mejor opción para su crecimiento profesional

Más detalles

INSTITUTO POLITÉCNICO NACIONAL

INSTITUTO POLITÉCNICO NACIONAL INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS DESARROLLO DE UN COMPILADOR PARA PSEUDOCÓDIGO EN LENGUAJE ESPAÑOL T E S I S QUE

Más detalles

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación. Unidad II Metodología de Solución de Problemas 2.1 Descripción del problema (enunciado). Este aspecto nos indica describir de manera objetiva la realidad del problema que se esta investigando. En la descripción

Más detalles

1. Resolución de problemas con computadoras

1. Resolución de problemas con computadoras Fundamentos de Programación I 1. Resolución de problemas con computadoras Luis Rodríguez Baena (luis.rodriguez@upsam.es) Universidad Pontificia de Salamanca Escuela Superior de Ingeniería y Arquitectura

Más detalles

CAPITULO 3 VRML-JAVA-WWW

CAPITULO 3 VRML-JAVA-WWW CAPITULO 3 VRML-JAVA-WWW 50 3.1 Introducción En éste capítulo se comenta brevemente sobre el origen y esencia de los lenguajes VRML 2 y Java, así como de la forma en que se pueden éstos complementar para

Más detalles

17º Concurso de Trabajos Estudiantiles, EST 2014

17º Concurso de Trabajos Estudiantiles, EST 2014 CXML: Intérprete para XML Concha Medina Edgard José, Del Corro Gonzalo, Leiva Mario Dpto. de Informática. Facultad de Ciencias Exactas y Tecnologías, Universidad Nacional de Santiago del Estero. {edgard.007.85,

Más detalles

2 Métodos combinatorios

2 Métodos combinatorios 2 Métodos combinatorios Las pruebas pueden aplicarse de muchas maneras, es decir, existen diferentes formas de preparar casos de prueba. En este capítulo se presentan dos formas de prueba muy fáciles de

Más detalles

1. Aplicaciones del J2SE SDK1.4.2 de Sun.

1. Aplicaciones del J2SE SDK1.4.2 de Sun. Dept Informatica Índice 1 Aplicaciones del J2SE SDK142 de Sun 1 11 javac 1 12 java 1 13 javadoc 2 14 Las que no se explican 3 2 Guía de estilo de Java 3 21 Clases 3 211 Nombres para las clases 3 212 Estructura

Más detalles

CONTENIDO. 1. Introducción. 2. Reseña histórica del computador. 3. Definición de computador.

CONTENIDO. 1. Introducción. 2. Reseña histórica del computador. 3. Definición de computador. CONTENIDO 1. Introducción. 2. Reseña histórica del computador. 3. Definición de computador. 4. Sistemas numéricos. 4.1 Generalidades. 42 Sistema binario. 4.3 Sistema octal,. 4.4 Sistema decimal. 4.5 Sistema

Más detalles

Soporte lógico de computadoras

Soporte lógico de computadoras Soporte lógico de computadoras Software: Sistemas Operativos Lenguajes de programación Lenguajes de Programación. Clasificación Proximidad del lenguaje al que entiende el ordenador: Bajo nivel: específico

Más detalles

Nombre de la asignatura: Programación Estructurada. Créditos: 3-2 - 5. Aportación al perfil

Nombre de la asignatura: Programación Estructurada. Créditos: 3-2 - 5. Aportación al perfil Nombre de la asignatura: Programación Estructurada Créditos: 3-2 - 5 Aportación al perfil Diseñar, analizar y construir equipos y/o sistemas electrónicos para la solución de problemas en el entorno profesional,

Más detalles

DIAGRAMA DE FLUJO DE DATOS

DIAGRAMA DE FLUJO DE DATOS DIAGRAMA DE FLUJO DE DATOS AUTOR: CORDOVA NERI, TEODORO Lima Perú Córdova Neri, Teodoro 2 Diagrama de Flujo de Datos INTRODUCCIÓN La presente guía denominada DIAGRAMA DE FLUJO DE DATOS, ilustra una de

Más detalles

GUÍA DE TRABAJO Tecnología en Sistemas de Información

GUÍA DE TRABAJO Tecnología en Sistemas de Información 1. IDENTIFICACIÓN Asignatura Laboratorio Lógica y Programación Guía No. 1 Área Básica de la Ingeniería Nivel II Código LLI22 Pensum 10 Correquisito(s) LPI24 Prerrequisito(s) Créditos 2 TPS 2 TIS 4 TPT

Más detalles

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador.

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador. ORGANIZACIÓN DE LA MEMORIA EN TIEMPO DE EJECUCIÓN Compilador Tiempo de Compilación Programa fuente Secuencia de caracteres Scanner Secuencia de símbolos Parser Árbol sintáctico Analizador semántico Generador

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA. Unidad Zacatenco TESIS QUE PARA OBTENER EL TÍTULO DE:

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA. Unidad Zacatenco TESIS QUE PARA OBTENER EL TÍTULO DE: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA Unidad Zacatenco Implementación de un traductor de instrucciones para microcontroladores MSP430, usando software libre

Más detalles

3.2 Operaciones aritmético-lógicas en Pascal

3.2 Operaciones aritmético-lógicas en Pascal 3.2 Operaciones aritmético-lógicas en Pascal Operadores Los operadores sirven para combinar los términos de las expresiones. En Pascal, se manejan tres grupos de operadores : 1. ARITMÉTICOS 2. RELACIONALES

Más detalles

DESARROLLO DE SOFTWARE CON CALIDAD PARA UNA EMPRESA

DESARROLLO DE SOFTWARE CON CALIDAD PARA UNA EMPRESA DESARROLLO DE SOFTWARE CON CALIDAD PARA UNA EMPRESA Resumen AUTORIA CARLOS CABALLERO GONZÁLEZ TEMATICA INFORMÁTICA ETAPA ESO-BACHILLERATO-CFGM(ESI,ASI,DSI) Se describe la revolución que supuso la incursión

Más detalles

Prácticas de programación en C con MinGW Developer Studio

Prácticas de programación en C con MinGW Developer Studio Prácticas de programación en C con MinGW Developer Studio MinGW Developer Studio es un entorno de desarrollo integrado (IDE) para la programación en lenguaje C gratuito y cómodo de usar. Se ejecuta en

Más detalles

APOYO PARA LA TOMA DE DECISIONES

APOYO PARA LA TOMA DE DECISIONES APOYO PARA LA TOMA DE DECISIONES Cátedra: Gestión de Datos Profesor: Santiago Pérez Año: 2006 Bibliografía: Introducción a las Bases de Datos. DATE - 1 - 1. INTRODUCCION APOYO PARA LA TOMA DE DECISIONES

Más detalles

Programación generativa

Programación generativa ujuarez@itorizaba.edu.mx Instituto Tecnológico de Orizaba 15 de octubre de 2010 Agenda 1 Introducción Panorama general Problemática 2 Implementación generativa Bibliotecas activas Bibliotecas activas:

Más detalles

Programación en lenguaje C++

Programación en lenguaje C++ Programación en Lenguaje C++ Objetivos Unidad Tema Subtema Objetivos VI 6.1 Metodología de la programación Metodologías Diseños de algoritmos Creación de algoritmos Entender y aplicar los pasos a seguir

Más detalles

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

Más detalles

Práctica 0. Emulador XENON de la computadora CESIUS

Práctica 0. Emulador XENON de la computadora CESIUS Práctica 0. Emulador XENON de la computadora CESIUS 1. Introducción El objeto de la presente práctica es permitir al alumno ensayar y familiarizarse con los conceptos de programación de computadoras digitales

Más detalles

"Programación en Ensamblador del microprocesador Pentium (I)"

Programación en Ensamblador del microprocesador Pentium (I) PRÁCTICA 3 "Programación en Ensamblador del microprocesador Pentium (I)" ÍNDICE 3.1.- El microprocesador Pentium. 3.2.- Inserción de ensamblador en Visual Studio. 3.3.- Facilidades para la depuración de

Más detalles

LENGUAJES DE PROGRAMACIÓN

LENGUAJES DE PROGRAMACIÓN 7 LENGUAJES DE PROGRAMACIÓN 7.1. Lenguajes de programación. Evolución. El soporte lógico, o software, de una computadora es el conjunto de programas asociados a dicha computadora. Hemos visto en el tema

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

PLAN DE ESTUDIOS Y CONTENIDOS MÍNIMOS

PLAN DE ESTUDIOS Y CONTENIDOS MÍNIMOS CARRERAS DE DOS AÑOS TECNICATURA EN PROGRAMACIÓN DE COMPUTADORAS PLAN DE ESTUDIOS Y CONTENIDOS MÍNIMOS Resolución UB 004/14 ANEXO Tabla general de asignaturas del Plan de Estudios y Obligaciones Académicas

Más detalles

Lenguajes y Compiladores

Lenguajes y Compiladores Información: http://www.cs.famaf.unc.edu.ar/wiki/ Profesores: Héctor Gramaglia, Miguel Pagano, Demetrio Vilela Régimen de regularidad y Promoción Se tomarán 2 parciales Promoción: obteniendo al menos 7

Más detalles

Fundamentos de Informática. Primer Curso de Ingenieros Químicos. Práctica 1. Dev C++ Compilador de C para Windows

Fundamentos de Informática. Primer Curso de Ingenieros Químicos. Práctica 1. Dev C++ Compilador de C para Windows Práctica 1 Dev C++ Compilador de C para Windows 1. Desarrollo de la práctica Posiblemente, el mejor modo de aprender estas nociones, es comenzar con la escritura de un primer programa en Dev-C++, tal como

Más detalles

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD 1 Java es un lenguaje de programación de Sun Microsystems originalmente llamado "Oak. James Gosling Bill Joy 2 Oak nació para programar pequeños dispositivos electrodomésticos, como los asistentes personales

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

Análisis Semántico en Procesadores de Lenguaje

Análisis Semántico en Procesadores de Lenguaje Análisis Semántico en Procesadores de Lenguaje Cuaderno Nº 38 Ingeniería Informática Francisco Ortín Soler Juan Manuel Cueva Lovelle Maria Cándida Luengo Díez Aquilino Adolfo Juan Fuente José Emilio Labra

Más detalles

Basic Object Oriented Programming (BOOP) Gramática del Lenguaje. Ever Mitta Flores

Basic Object Oriented Programming (BOOP) Gramática del Lenguaje. Ever Mitta Flores Ever Mitta Flores Índice 1. Clase @Principal...3 2. Comentarios...3 3. Definición de Atributos...3 4. Definición de Métodos...4 5. Declaración de Variables...4 6. Asignación de Valores...5 7. Definición

Más detalles

Representación de Datos. Una Introducción a los Sistemas Numéricos

Representación de Datos. Una Introducción a los Sistemas Numéricos Representación de Datos Una Introducción a los Sistemas Numéricos Tipos de Datos Datos Texto Número Imagen Audio Video Multimedia: Información que contiene números, texto, imágenes, audio y video. Como

Más detalles

Datos parciales. Datos Parciales. La Programación estructurada se concentra en las acciones que controlan el flujo de datos.

Datos parciales. Datos Parciales. La Programación estructurada se concentra en las acciones que controlan el flujo de datos. Unidad I Conceptos Básicos de la Programación Orientada a Objetos 1.1 Paradigma de la Programación Orientada a Objetos Paradigma. Según el Diccionario de la Real Academia de la Lengua Española, paradigma

Más detalles

Unidad 1. Introducción a los conceptos de Bases de Datos

Unidad 1. Introducción a los conceptos de Bases de Datos Unidad 1 Introducción a los conceptos de Bases de Datos 1.1 Definición de Base de Datos Dato: Conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, o alfanuméricos. Información:

Más detalles

Software Computacional y su clasificación

Software Computacional y su clasificación Software Computacional y su clasificación Capítulo 5 El software En modo sencillo el software permite que las personas puedan contarle a la computadora cierto tipo de problemas y que ésta a su vez le ofrezca

Más detalles

Un comité de la organización ANSI (American National Standards Institute) aborda la problemática del almacenamiento de datos para su procesamiento en

Un comité de la organización ANSI (American National Standards Institute) aborda la problemática del almacenamiento de datos para su procesamiento en 15/05/2012 1 Un comité de la organización ANSI (American National Standards Institute) aborda la problemática del almacenamiento de datos para su procesamiento en aplicaciones informáticas en 1975. 2 Como

Más detalles

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 FAMILIA PROFESIONAL: INFORMATICA Y COMUNICACIONES MATERIA: 28. DESARROLLO WEB EN ENTORNO SERVIDOR CURSO: 2º DE CFGS DESARROLLO DE APLICACIONES

Más detalles

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp...

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp... Contenido Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp... 5 Introducción Es tiempo de hablar en detalle de lo que significa

Más detalles

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 16 CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC304_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

CONCEPTOS BÁSICOS DE INFORMÁTICA. REPRESENTACIÓN DE LA INFORMACIÓN.

CONCEPTOS BÁSICOS DE INFORMÁTICA. REPRESENTACIÓN DE LA INFORMACIÓN. INDICE. CONCEPTOS BÁSICOS DE INFORMÁTICA. REPRESENTACIÓN DE LA INFORMACIÓN. TÉRMINOS BÁSICOS DE LA INFORMÁTICA. REPRESENTACIÓN INTERNA DE LA INFORMACIÓN. El SISTEMA BINARIO DE NUMERACION. El sistema decimal

Más detalles

NIVEL BÁSICO. Iniciar trabajo con excel

NIVEL BÁSICO. Iniciar trabajo con excel NIVEL BÁSICO Iniciar trabajo con excel - Identificación de las partes de una hoja de cálculo y su correspondiente zona de trabajo. - Edición de características de texto, tales como tipo de letra, tamaño,

Más detalles

Algoritmos y Diagramas de Flujo 2

Algoritmos y Diagramas de Flujo 2 Algoritmos y Diagramas de Flujo 2 Programación Java NetBeans 7.0 RPC Contenido 2.1 Algoritmo...1 Fase de creación de un algoritmo...1 Herramientas de un algoritmo...2 2.2 Diagrama de Flujo...2 Símbolos

Más detalles

Proyecto Unico Interpretador de SetCalc

Proyecto Unico Interpretador de SetCalc Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información CI3721 - Traductores e Interpretadores Abril-Julio 2008 Proyecto Unico Interpretador de SetCalc A continuación se describe

Más detalles

LENGUAJES DE PROGRAMACIÓN POR QUÉ HAY TANTOS Y APARECEN NUEVOS? Por: Hanna Oktaba

LENGUAJES DE PROGRAMACIÓN POR QUÉ HAY TANTOS Y APARECEN NUEVOS? Por: Hanna Oktaba LENGUAJES DE PROGRAMACIÓN POR QUÉ HAY TANTOS Y APARECEN NUEVOS? Por: Hanna Oktaba La computadora, a diferencia de otras herramientas que en general apoyan el esfuerzo físico de los humanos, fue inventada

Más detalles