Introducción y Perspectivas
|
|
- José Ángel Montoya Saavedra
- hace 5 años
- Vistas:
Transcripción
1 Introducción y Perspectivas Qué?, Por qué?, Cómo? Y Para qué? De los Procesadores de Lenguajes en General y de los Compiladores en particular El Escenario... Enorme desarrollo de los métodos de diseño de compiladores Años 80 y 90, mientras todos hablan de PCs e Internet... Gran cantidad de publicaciones y, sobre todo, mejoras constantes de los compiladores que procesan el software que empleamos Lenguajes de Programación en constante evolución: Nuevos paradigmas: OO, funcional, lógico, paralelo-distribuído Se precisan nuevas técnicas de compilación Se requieren entornos de ejecución mucho más extensos Las técnicas de generación de código han evolucionado Sistemas de reescritura ascendente (BURS) Capaces de vérselas con juegos de instrucciones complejos Computadoras más potentes Técnicas de compilación nuevas 2 1
2 La audiencia... Estudiantes de Informática de últimos años de carrera: Usuarios, ya habituales, de compiladores Con inquietud por saber cómo funciona uno de estos sistemas Con grado de madurez suficiente en estructuras, algoritmos y programación Gente que quiere... Comprender en profundidad los conceptos Conocer los métodos de diseño moderno de compiladores Ser capaz de emplear herramientas para construir compiladores Para diferentes paradigmas Con períodos de aprendizaje adicionales Leer y entender la literatura especializada sobre el tema 3 Compiladores: Qué son Compilador: Programa que acepta como entrada un texto de programa en un cierto lenguaje y genera como salida texto de programa en otro lenguaje. Traducción: Proceso por el cual un compilador convierte el texto del programa de entrada en el de salida. Terminología: Lenguaje fuente: lenguaje en que se escribe la entrada Lenguaje objeto: lenguaje en que se escribe la salida En general, muy diferente del lenguaje fuente Objetivo de la traducción: Conseguir que el hardware realice las acciones descritas en la semántica del programa La ejecución del programa traducido supondrá tomar datos de diversas fuentes y volcarlos en otras después de procesarlos El programa en lenguaje objeto se convertirá en ejecutable: Cargador (RUNNER) con/sin caparazón (Shell) 4 2
3 Compiladores: Proceso de construcción El compilador se obtiene usando otro compilador!! El huevo o la gallina Tres lenguajes: Lenguaje fuente Lenguaje objeto Lenguaje de implementación del compilador Bootstrapping: Lenguaje fuente = Lenguaje de implementación Texto de entrada = Nueva versión del compilador Texto fuente Compilador Lenguaje de implementación Texto ejecutable 5 Compilación y conversión Compilar <~> Convertir de un formato a otro Mantener el significado en la conversión La entrada está escrita en un lenguaje => Tiene estructura Semántica asociada y descrita en términos de estructura El compilador comprende el programa y recolecta su significado en una representación semántica intermedia. A la hora de generar la salida, también se trata la estructura y el significado Dos zonas del compilador: front-end: Parte que se encarga del análisis del texto de entrada. back-end: Parte que se encarga de la síntesis del texto de salida. En un diseño nítido, ambas zonas sólo tienen como zona de contacto la representación semántica En general, esto no es muy eficiente. Modo de operación posible: intérprete. En vez de traducir, realiza las acciones directamente 6 3
4 Esctructura conceptual del compilador Texto fuente Texto ejecutable Front-end (Análisis) Representación semántica Compilador Back-end (Síntesis) 7 Intérpretes: por qué Portabilidad: Un intérprete se escribe en lenguaje de alto nivel. Sencillez: Escribir un intérprete cuesta menos que construir un back-end Señalización y Manejo de errores: Los compiladores suelen cuidar demasiado la eficiencia de código Seguridad: Funcionamiento más transparente al usuario Comparativa: Conceptualmente, casos de traductores. Difieren básicamente en la proporción preproceso/proceso Preproceso: del fuente al objeto Proceso: Interpretación por la máquina virtual ó intérprete 8 4
5 Compiladores vs. Intérpretes Compiladores: El procesamiento del programa es considerable. La forma intermedia resultante es, generalmente, código ejecutable binario (bajo nivel de abstracción). El mecanismo de interpretación previsto es la CPU hw. La ejecución del programa traducido es relativamente rápida. Intérpretes: El procesamiento de programa es entre mínimo y moderado. El lenguaje resultante (estructura de datos dependiente de sistema) tiene nivel de abstracción entre medio y alto. El mecanismo de interpretación es un programa (sw). La ejecución del programa es, en general, más lenta y más segura. 9 Por qué estudiar los compiladores? La construcción de compiladores es: Actividad muy fructífera y con muchos éxitos en computación. Una de las primeras en ganarse fama. Supone: Estructuración adecuada del problema (L front-ends, M back-ends ). Uso juicioso de formalismos (algunos con más de 40 años de uso). Empleo de herramientas de generación de programas. Conceptos, técnicas y herramientas útiles: Búsqueda / Sustitución Diseño de partes del interfaz de usuario (CLI) Filtros y convertidores: Web, TextProc,... Procesamiento de Lenguaje Natural (siempre emergente) Varios algoritmos interesantes ES FASCINANTE saber cómo consiguen los compiladores hacer lo que hacen y puede ayudarnos a programar 10 5
6 Estructura de un compilador real: Front-End Módulo de entrada de texto Lectura eficiente de la entrada y conversión a flujo de caracteres Módulo de análisis léxico Segmentación y etiquetado del flujo de caracteres: tokens Módulo de análisis sintáctico Conversión del flujo de tokens en representación abstracta de la estructura de programa (e.g. AST). Módulo de gestión de contexto Anotación de la estructura con información de contexto global Módulo de generación de código intermedio Traducción de construcciones específicas del lenguaje a construcciones más generales (IC) Facilitar la generación directa de código máquina 11 Estructura de un compilador real: Back-End Módulo de optimización de código intermedio Limpieza y reorganización de código intermedio Módulo de generación de código Reescritura del AST en lista lineal de instrucciones máquina Optimización de código objeto Reescritura de la lista lineal de instrucciones Sustitución, inserción, relocalización o borrado de subsecuencias. Generación de Código máquina Conversión de la lista simbólica de instrucciones en secuencias de patrones de bits. Módulo de salida de código ejecutable Combinación y escritura de: Instrucciones máquina codificadas Tablas de constantes y de recolocación de código. Cabeceras, colas y otro material diverso requerido por el S.O. Fuertemente dependiente del sistema de ejecución (RTS) 12 6
7 Arquitecturas de compiladores Sistemas modulares Cada par de módulos consecutivo define un interfaz. Compilador estrecho: Lectura de pequeñas porciones del programa y procesamiento completo de ellas. Compilador ancho: Lectura de grandes porciones (incluso toda la entrada) antes de comenzar a generar salida alguna. Fases de compilación: Cada una de las transformaciones mayores que realiza. Pasos de compilación: Cada uno de las etapas que integran un compilador estrecho y que se comunica con la siguiente por medio de almacenamiento externo. 13 Propiedades de un buen compilador Generación de código correcto. Siempre: compilador inservible. A veces: compilador peligroso. Ajuste a las especificaciones del lenguaje fuente. Capacidad para manejar entradas de tamaño o complejidad arbitrariamente grande. Velocidad de compilación tolerable (~). Tamaño del programa de compilación (~). Capacidad informativa al usuario sobre errores de la entrada. Portabilidad Versatilidad para cambio de lenguaje objeto (retargetability). 14 7
8 Compiladores: Historia rápida : GENERACIÓN DE CÓDIGO Dependencia de las máquinas : PARSING Buenos formalismos y técnicas de análisis hoy: GENERACIÓN Y OPTIMIZACIÓN, NUEVOS PARADIGMAS. Adecuación a nuevas necesidades, paradigmas y entornos. Mejora del rendimiento, la seguridad y la tolerancia a fallos. 15 Algunas actividades... (para el cuaderno) Buscar: Cuántos lenguajes de programación hay? Alguna explicación? Qué lenguaje de programación emplea el gestor de arranque y configuración de las plataformas Sun? Es interpretado? Qué tiene de interesante? Referencias sobre evolución histórica de compiladores/interp. Y su correspondencia tanto con la de los lenguajes de programación como con la de las arquitecturas. Cómo hemos llegado a Python desde awk y C pasando por Perl? Análisis: Describir la estructura y funcionamiento (fases y pasos) del compilador de C++ de GNU. Las primeras versiones de Perl se desarrollaron bajo el modelo de intérprete puro pero las actuales adoptan un modelo mixto compilado/interpretado: En qué consiste la compilación de código Perl de biblioteca o de módulos de usuario? Tiene algo que ver con la salvaguarda/recuperación del estado? 16 8
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 detallesTema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Más detallesElementos para el estudio de los compiladores
Ing. Adrian Ulises Mercado Martínez Enero 30, 2015 Ing. Adrian Ulises Mercado Martínez Enero 30, 2015 1 / 51 1 Objetivo 2 Historia 3 Traductor Tipo de Traductores Compilador Intérprete Máquina Virtual
Más detallesUnidad 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 detallesIntroducción al Diseño de Compiladores. Año
Introducción al Diseño de Compiladores Año 2003 1 BIBLIOGRAFÍA [AHO] Compilers. Principles, Techniques, and Tools Aho, Sethi; Adisson-Wesley 1986 [TEU] Compiladores: Conceptos fundamentales. Teufel ; Addison
Más detallesIntroducción a la programación: Contenido. Introducción
Introducción a la programación: Contenido Introducción a la programación:... 1 Introducción... 1 1. Procesamiento automatizado de información... 1 2. Concepto de algoritmo.... 2 3. Lenguajes de programación....
Más detallesEvolución del software y su situación actual
Evolución del software y su situación actual El software es el conjunto de programas que permite emplear la PC, es decir, es el medio de comunicación con la computadora, el control de sus funciones y su
Más detallesLenguajes de Cuarta Generación
Lenguajes de Cuarta Generación Diana Marcela SánchezS http://www.csi.map.es/csi/metrica3/index.html www.csi.map.es/csi/metrica3/ /metrica3/index.htmlindex.html Que es un programa? La unión de una secuencia
Más detallesFACULTAD POLITÉCNICA DIRECCIÓN ACADÉMICA PROGRAMA DE ESTUDIO I. IDENTIFICACIÓN Carrera : Ingeniería de Sistemas CARGA HORARIA (Horas reloj) Asignatura : Compiladores Carga Horaria Semestral 64 Semestre
Más detallesEs un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.
Los problemas que se plantean en la vida diaria suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual del ser humano. La utilización de la computadora en la resolución
Más detallesUn. I. Introducción a la programación de sistemas
Un. I. Introducción a la programación de sistemas 1.1 Qué es la programación de sistemas? La programación de sistemas comprende el desarrollo de aquellos programas de computadora que tienen una fuerte
Más detallesIntroducción al Análisis Sintáctico
Introducción al Análisis Sintáctico El Parsing como Algoritmo Universidad de Cantabria Outline Introducción 1 Introducción 2 3 4 El Problema de la Parsing El problema de parsing está muy relacionado con
Más detallesCompiladores: Introducción
Compiladores: Introducción Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. (galvarez@puj.edu.co) Basado en [Aho, 2007, chp. 1] Qué es un COMPILADOR?
Más detallesSebastián García Galán
Universidad de Jaén E.U.P. Linares Dpto. Telecomunicaciones Área de Ingeniería Telemática Sebastián García Galán Sgalan@ujaen.es TEMA 1: INTRODUCCIÓN A LOS COMPUTADORES DIGITALES 1.1 CONCEPTO DE COMPUTADOR
Más detallesEspecialidades en GII-TI
Especialidades en GII-TI José Luis Ruiz Reina (coordinador) Escuela Técnica Superior de Ingeniería Informática Mayo 2014 Qué especialidades tiene la Ingeniería Informática? Según las asociaciones científicas
Más detallesUnidad 2. Introducción Lenguajes y Compiladores
Unidad 2 Introducción Lenguajes y Compiladores Principal material bibliográfico utilizado Compiladores Principios, técnicas y herramientas. Aho y Ullman. Addison Wesley. www.jorgesanchez.net www.iqcelaya.itc.mx/~vicente/programacion/tradcomp.pdf
Más detallesPrincipios 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 detallesSistema 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 detallesLenguaje de programación. COMPILADORES Unidad I: Introducción al proceso de compilación
COMPILADORES Unidad I: Introducción al proceso de compilación Flor Prof. Flor Narciso GIDyC-Departamento de Computación LABSIULA-Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de
Más detallesIntroducción a la programación
Introducción a la programación PROGRAMACION I Grado en Matematicas Informática Programación I - 2015/2016 Introducción 1 Introducción a la programación Computador: aparato electrónico capaz de interpretar
Más detallesConcepto de compilador Intérprete Fases de un Compilador Herramientas de construcción de Compiladores
18:55 1 2 Temas Concepto de compilador Intérprete Fases de un Compilador Herramientas de construcción de Compiladores Objetivo Que el estudiante logre conocer, comprender y manejar conceptos y técnicas
Más detallesConceptos y definiciones básicos en computación
UNIVERSIDAD MICHOACANA DE SAN NICOLÁS DE HIDALGO FACULTAD DE INGENIERIA ELECTRICA Laboratorio de Herramientas Computacionales Conceptos y definiciones básicos en computación M.I. Rosalía Mora Lab. Juárez
Más detallesPROGRAMA: INTRODUCCIÓN A LA INFORMÁTICA
UNIVERSIDAD NACIONAL EXPERIMENTAL DEL TACHIRA VICERECTORADO ACADÉMICO DEPARTAMENTO DE INGENIERÍA INFORMÁTICA PROGRAMA: INTRODUCCIÓN A LA INFORMÁTICA Código Nombre de la Asignatura 8501 Introducción a la
Más detallesTema: Introducción a la Programación Estructurada
Tema: Introducción a la Programación Estructurada 1 Objetivos Mostrar el contexto en el que se desarrolla la asignatura. Comprender algunos conceptos como el de algoritmo y programa. Entender las tareas
Más detalles7/1/18. Algoritmos RESOLVIENDO PROBLEMAS. Libro en línea. Cuál es el objetivo del libro? Ing. Roberto Martínez Román -
Algoritmos RESOLVIENDO PROBLEMAS Libro en línea Cuál es el objetivo del libro? rmroman@itesm.mx 1 Tareas que hace la computadora Las tareas que pueden hacer las computadoras son: a) Leer/escribir datos
Más detallesLógica: Algoritmo: Archivo: Base de datos: Bit:
Lógica: Algoritmo: Archivo: Base de datos: Bit: 1 LÓGICA: Es una secuencia de operaciones realizadas por el hardware o por el software. Lógica del hardware, Son los circuitos y Chips que realizan las operaciones
Más detallesTema 1 Introducción al paradigma de programación orientado a objetos
Tema 1 Introducción al paradigma de programación orientado a objetos Programación Orientada a Objetos Curso 2013/2014 Contenido Paradigmas de programación vs. Lenguajes de programación. Evolución de los
Más detallesAcción que el procesador puede ejecutar sin necesidad de información suplementaria
TEMA 5: Algoritmos y programas Fundamentos de Informática (Ingeniería Técnica Industrial) Escuela Universitaria Politécnica Índice de contenidos 1. 2. 3. 4. Introducción. Conceptos básicos Representación
Más detallesC1 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 detallesUnidad 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 detallesConvivencia Introducción
Convivencia Introducción Dra. Carolina Mañoso Dpto. Informática y Automática.UNED Definición (1/3) El sistema operativo como máquina virtual o extendida: Un sistema operativo es una serie de componentes
Más detallesTema 04: Lenguajes de programación y el lenguaje C
Tema 04: Lenguajes de programación y el lenguaje C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A.
Más detallesOrganización. Organización. Llenguatges de Programació Curs Gonzalo Besuievsky IMA - UdG. Horario Miércoles de 9:30 a 13:00
Llenguatges de Programació Curs 03-04 Gonzalo Besuievsky IMA - UdG Organización Horario Miércoles de 9:30 a 13:00 Tutorías Después de clase por mail: gonzalo@ima.udg.es Página del curso http://ima.udg.es/docencia/03-04/3157ra0008/index.html
Más detallesCapítulo 3 CICLO DE VIDA DE UN PROGRAMA. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"
Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 3 CICLO DE VIDA DE UN PROGRAMA 1 OBJETIVOS Saber qué es la Ingeniería
Más detallesCompiladores e intérpretes Introducción
Introducción Profesor: Eridan Otto Introducción Perspectiva histórica Motivación Definiciones Componentes y fases de un compilador 1 Introducción Definiciónes básicas Traductor: desde un punto de vista
Más detallesINTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES FUNDAMENTOS DE COMPILADORES
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Más detallesContenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55
Contenido Capítulo 1. Teoría de conjuntos. 1 1.1 Conjuntos.... 3 1.1.1 Definiciones básicas.... 3 1.1.2 Operaciones sobre conjuntos.... 6 1.1.3 Diagrama de Venn.... 7 1.1.4 Álgebra de conjuntos.... 7 1.2
Más detallesDiseño de Compiladores I. Estructura General de un Compilador
Diseño de Compiladores I Estructura General de un Compilador PROGRAMA FUENTE COMPILADOR SALIDA Mensajes de Error 2 Un compilador es un programa que traduce un programa escrito en lenguaje fuente y produce
Más detallesINDICE. Prólogo de la Segunda Edición
INDICE Prólogo de la Segunda Edición XIII Capitulo 1. Algoritmos y Programas 1 1.1. Los sistemas de procesamiento de la información 2 1.2. Concepto de algoritmo 4 1.2.1. Características de los algoritmos
Más detallesCÓMO DESARROLLAR Y PROBAR PROGRAMAS?, COMPRUÉBALO!
CÓMO DESARROLLAR Y PROBAR PROGRAMAS?, COMPRUÉBALO! AUTORÍA MARÍA CATALÁ CARBONERO TEMÁTICA PROGRAMACIÓN ETAPA CICLO MEDIO Y SUPERIOR DE INFORMÁTICA Resumen A la hora de realizar un programa en cualquier
Más detallesComputación Conociendo la herramienta de cálculo. La Computadora
Computación 1-2017 - Conociendo la herramienta de cálculo La Computadora Sistemas Operativos cómo funcionan? Esquema de relaciones: aplicaciones SO hardware A1 A2 Aplicaciones del usuario An Sistema Operativo
Más detallesLenguajes y Compiladores Introducción. Compiladores 1
Facultad de Ingeniería de Sistemas Lenguajes y Introducción 1 Objetivos Conocer los fundamentos de construcción de en todas sus fases, presentando los conceptos básicos, definiciones formales, técnicas
Más detallesCOLEGIO DE ESTUDIOS DE POSGRADO DE LA CIUDAD DE MÉXICO
COLEGIO DE ESTUDIOS DE POSGRADO DE LA CIUDAD DE MÉXICO ELABORO: ALEJANDRA FUERTES FRANCISCO TEMA: LENGUAJES DE PROGRAMACIÓN INTRODUCCIÓN Un lenguaje de programación es un conjunto de instrucciones que
Más detallesAspectos pragmáticos de los lenguajes de programación
Aspectos pragmáticos de los lenguajes de programación 6.2 Principios de diseño de los lenguajes No hay lenguaje de programación perfecto. Ciertos lenguajes se usan más que otros. C: programación de sistemas
Más detallesALGORITMO. Podemos encontrar muchas definiciones de algoritmo en los textos de programación, todas ellas muy similares:
Nuestra herramienta mental más importante para competir con la complejidad es la abstracción. Por tanto, un problema no deberá considerarse inmediatamente en términos de instrucciones de un lenguaje, sino
Más detallesLenguajes de Programación
Lenguajes de ción Bloque 1. Complemento a Tema 1 1. Historia 2. Paradigmas de programación 3. Fases creación de un programa 4. Traducción: compilación e interpretación 1ª Generación Ordenadores sólo entienden
Más detallesIntroducción. El proceso de traducción
Traductores y compiladores bajo + de abstracción 1945 1950 1968 1970 1990 11100110 0001 0110 10101001 1100 0011 11000011 1101 1100 MOVE AX #2 MOVE BX #3 MUL CX AX BX Fact = 1; For i:=0 to 10 fact := fact
Más detallesTema V Generación de Código
Tema V Generación de Código Una vez que se ha realizado la partición HW/SW y conocemos las operaciones que se van a implementar por hardware y software, debemos abordar el proceso de estas implementaciones.
Más detallesProgramación para Ingeniería Eléctrica
Programación para Ingeniería Eléctrica Ignacio Ramírez Instituto de Ingeniería Eléctrica, Facultad de Ingeniería, Universidad de la República. Montevideo, Uruguay. Montevideo, 2015 Agenda 1 Introducción
Más detallesPráctica 01 - Preprocesamiento básico para un código fuente en lenguaje C Compiladores - Profr. Edgardo Adrián Franco Martínez
2 Contenido Introducción Análisis léxico Funciones del analizador léxico Preprocesamiento básico de un código fuente de C Manejo de búferes 3 Introducción Para la construcción de todo traductor, compilador
Más detallesControl del Documento
Control del Documento Proyecto [Nombre del Proyecto al que se refiere este documento] Título Arquitectura del Sistema [v1.1.1 al 1 de enero de 2007.] Generado por : [Fulanito de Tal y Menganito de Cual.]
Más detallesTIPOS DE SOFTWARE. A grandes rasgos, se puede decir que existen tres tipos de software:
SOFTWARE Software es un término informático que hace referencia a un programa o conjunto de programas de cómputo que incluye datos, procedimientos y pautas que permiten realizar distintas tareas en un
Más detallesTema 2 Conceptos básicos de programación. Fundamentos de Informática
Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis
Más detallesContenidos: Definiciones:
Contenidos: Definiciones. Esquema de un ordenador. Codificación de la información. Parámetros básicos de un ordenador. Programas e instrucciones. Proceso de ejecución de una instrucción. Tipos de instrucciones.
Más detallesINFORMACION GENERAL DEL PROGRAMA DE FORMACION DENOMINACIÓN DEL PROGRAMA: PROGRAMACION DE SOFTWARE. Productiva 6 MESES
INFORMACION GENERAL DEL PROGRAMA DE FORMACION CÓDIGO 217303 DURACION MAXIMA ESTIMADA DEL APRENDIZAJE EN MESES NIVEL DE FORMACIÓN DENOMINACIÓN DEL PROGRAMA: PROGRAMACION DE Lectiva Total 6 MESES 12 MESES
Más detalles1. 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 detallesCompilación. Jaime Gutiérrez Alfaro Compiladores e Intérpretes. II semestre,
Compilación Jaime Gutiérrez Alfaro Compiladores e Intérpretes II semestre, 2017 1 Agenda 2. Compilación Estructura del proceso de compilación Estructuras de datos Pasadas Opciones de diseño de un compilador
Más detallesIntroducción a los compiladores
Introducción a los compiladores William Cruz-Santos wdelacruzd@uaemex.mx Ingeniería en Computación Universidad Autónoma del Estado de México Unidad de Competencia I 2 de octubre de 2015 William Cruz-Santos
Más detallesFUNDAMENTOS DE PROGRAMACIÓN. Algoritmos y Programas
FUNDAMENTOS DE PROGRAMACIÓN Algoritmos y Programas Dato La palabra proviene del latín datum, forma del verbo dare dar, que significa Lo que es dado Representación de una información de manera adecuada
Más detalles2. 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 detallesAnálisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas
Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semático c 2001 José Fortes Gálvez p.1 Análisis?... semántico? La semántica corresponde al significado asociado
Más detallesGuía Docente. Tipo: Obligatoria Créditos ECTS: 6. Curso: 4 Código: 3639
Guía Docente DATOS DE IDENTIFICACIÓN Titulación: Ingeniería Informática Rama de Conocimiento: Ingeniería y Arquitectura Facultad/Escuela: Escuela Politécnica Superior Asignatura: Procesadores de Lenguaje
Más detallesTema 1. Introducción
Departamento de Tecnologías de la Información Tema 1 Introducción Ciencias de la Computación e Inteligencia Artificial Índice 1.1 Conceptos 1.2 Un poco de historia 1.3 Estructura de un compilador 1.4 Teoría
Más detallesAlgoritmos. Libro en línea 3/8/18. Ing. Roberto Martínez Román - 1 RESOLVIENDO PROBLEMAS. Cuál es el objetivo del libro?
Algoritmos RESOLVIENDO PROBLEMAS ROBERTO MARTÍNEZ ROMÁN - RMROMAN@ITESM.MX 1 Libro en línea Cuál es el objetivo del libro? Roberto Martínez Román - rmroman@itesm.mx 2 rmroman@itesm.mx 1 Tareas que hace
Más detallesPontificia Universidad Católica del Ecuador
1. DATOS INFORMATIVOS: MATERIA O MÓDULO: COMPILADORES E INTERPRETES CÓDIGO: 10730 CARRERA: NIVEL: SISTEMAS QUINTO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4 CRÉDITOS PRÁCTICA: - SEMESTRE / AÑO ACADÉMICO: 2 / 2010
Más detallesPROGRAMA DE LABORATORIO POS-REQUISITO: Primer Semestre 2019 Ing. Mario José Bautista Fuentes AUXILIAR: Nery Galvez
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS PROGRAMA DE LABORATORIO CÓDIGO: 777 CRÉDITOS: 4 Organización de NOMBRE CURSO: Lenguajes y SECCIÓN: A Compiladores 1 ESCUELA:
Más detallesContenido: Nº Tema Imagen Descripción 1 Capas de la arquitectura de un ordenador
Contenido: 1. Capas de la arquitectura de un ordenador 2. Diagramas de flujo 3. Ciclo de vida del software 4. Compilado de programas y lincado de librerías 5. Interfaz gráfico de Scratch 1.4 6. Programando
Más detallesIntroducción. El proceso de traducción
Toda compilación es un proceso de transformación paulatina que convierte un programa escrito en un lenguaje fuente de alto nivel en otro programa escrito en un lenguaje objeto de bajo nivel. Ese proceso
Más detallesPROGRAMA 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 detallesNombre de la asignatura: Lenguajes y Autómatas I. Créditos: Aportación al perfil
Nombre de la asignatura: Lenguajes y Autómatas I Créditos: 2 3 5 Aportación al perfil Desarrollar, implementar y administrar software de sistemas o de aplicación que cumpla con los estándares de calidad
Más detallesCréditos prácticos: Álvarez Bermejo José Antonio Gil Montoya María Dolores López Martínez Manuel Fco
Año académico: 2006-2007 Centro: Escuela Politécnica Superior Departamento: Arquitect. de Computadores y Electrónica Área: Arquitectura y Tecnología de Computadores Estudios: Ingeniero Técnico en Informática
Más detallesTEMA 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 detallesUnidad I: Conceptos Básicos
Unidad I: Conceptos Básicos 1.1 Clasificación del software de: sistemas y aplicación Varios tipos de software se describen basándose en su método de distribución. Entre estos se encuentran los así llamados
Más detallesMódulo 1. Introducción a los lenguajes de programación
Módulo 1. Introducción a los lenguajes de programación Objetivo - Definir qué es un lenguaje de programación e identificar cómo es su forma de clasificación. Introducción a los lenguajes de programación
Más detallesHoras teóricas: Horas practicas: Área de conocimiento a la que pertenece
PROGRAMA DE ESTUDIOS Área de formación a la que pertenece: TRADUCTORES DE ALTO NIVEL CARRERA LT Sustantiva Profesional Horas teóricas: Horas practicas: 2 2 Créditos: 6 Clave: F0353 Área de conocimiento
Más detallesUnidad VIII Generación de código intermedio. M.C. Juan Carlos Olivares Rojas
Unidad VIII Generación de código intermedio M.C. Juan Carlos Olivares Rojas Agenda 8.1 Lenguaje máquina. 8.1.1 Características. 8.1.2 Direccionamiento. 8.2 Lenguaje ensamblador. 8.2.1 Características.
Más detallesObjetivo: Contenido
PROGRAMACIÓN BÁSICA Introducción Objetivo: El alumno describirá la importancia de la programación como herramienta en el quehacer del ingeniero. Contenido 1.1 Componentes: hardware, software. 1.2 Beneficios
Más detallesSISTEMAS OPERATIVOS Introducción. Amilcar Meneses Viveros
SISTEMAS OPERATIVOS Introducción Amilcar Meneses Viveros ameneses@computacion.cs.cinvestav.mx Presentación Objetivos Definición de sistema operativo Evolución de los sistemas operativos Objetivos Definición
Más detallesCOMPETENCIAS A ADQUIRIR POR EL ALUMNO
COMPETENCIAS A ADQUIRIR POR EL ALUMNO COMPETENCIAS BÁSICAS COMPETENCIAS BÁSICAS Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación
Más detallesCOMPETENCIAS DEL GRADO EN INGENIERÍA INFORMÁTICA
COMPETENCIAS DEL GRADO EN INGENIERÍA INFORMÁTICA COMPETENCIAS BÁSICAS CB1 - Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación
Más detallesTEMA 1. PROGRAMACIÓN DE UN COMPUTADOR
Tema 1. Programación de un computador TEMA 1. CIÓN DE UN COMPUTADOR 1. CONCEPTO DE 2. LENGUAJES DE CIÓN 2.1. LENGUAJE MÁQUINA 2.2. LENGUAJE ENSAMBLADOR 2.3. LENGUAJE DE ALTO NIVEL 3. ALGORITMOS. REPRESENTACIÓN
Más detallesMé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 detalles157 - GRADO EN INGENIERÍA INFORMÁTICA PRIMER CURSO CURSO
PRIMER CURSO SEMESTRE 1A SEMESTRE 1B FB 11664 Introducción a la informática y programación (6) (#) (M-6) (183) 11667 Tecnología de computadores (6)(M-4) (183) FB 11663 Fundamentos físicos de la informática
Más detallesMETACOMPILADOR DIDÁCTICO GENERADOR DE CÓDIGO JAVA
METACOMPILADOR DIDÁCTICO GENERADOR DE CÓDIGO JAVA Erick Leonel Rico Preciado 1, Ana Cristina Bueno Campos 1, José Gerardo Carpio Flores 2, Ruth Sáez de Nanclares Rodríguez 2, Martha Alicia Rocha Sánchez
Más detallesIng. Juan Carlos Sabido Alcántara Ingeniero Petrolero Facultad de Ingeniería UNAM
Programación Avanzada Semestre 2019-1 Ingeniero Petrolero Facultad de Ingeniería UNAM Como Ingeniero Petrolero no es suficiente ser usuario del software existente en el mercado, software que va desde
Más detallesComputación Avanzada. Ing. Daniel Capriles M.
Computación Avanzada. Ing. Daniel Capriles M. Es un modelo que engloba a ciertos lenguajes que comparten elementos estructurales o metodológicos similares. Según Robert Floyd quien habló por primera vez
Más detallesSistemas Operativos. Introducción. Tema 6
Sistemas Operativos Introducción Qué es un sistema operativo? Ubicación de un sistema operativo en un computador Descripción de un sistema operativo: Funcional Estructural Realización Funciones de los
Más detallesGRADO EN INGENIERIA INFORMATICA
GRADO EN INGENIERIA INFORMATICA El plan de estudios del Grado en Ingeniería Informática responde a la ficha recogida en la Resolución de 8 de junio de 2009 de la Secretaria General de Universidades que
Más detallesUNIVERSIDAD DE GUADALAJARA
UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS COMPILADORES MTRA.
Más detallesFundamentos de Informática
Fundamentos de Informática Grado en Información y Documentación Tema 4 Introducción a la programación 1 Contenidos Introducción: Programas e instrucciones. Representación de instrucciones. Tipos de instrucciones.
Más detallesProgramación estructurada
Programación estructurada Esta metodología de programación : Permite utilizar sentencias de bifurcación condicional estandarizadas. Facilita leer la codificación del programa de inicio a fin en forma continua.
Más detallesUnidad III: Introducción a la Programación
Unidad III: Introducción a la Programación 3.1 Características del lenguaje de programación Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a
Más detallesLAS 14 AREAS TEMATICAS DE LA COMPUTACIÓN
En los años 1986-1989 la ACM(Association for Computing Machinery) y la IEEE (Institute for Electrical and Electronic Engineers)Computer Society : Peter Denning y otros definen la Informática como disciplina
Más detallesDr. Carlos A. Coello Coello Departamento de Computación CINVESTAV IPN
Dr. Carlos A. Coello Coello Departamento de Computación CINVESTAV IPN ccoello@cs.cinvestav.mx Por qué estudiar conceptos de Lenguajes de Programación? Para incrementar nuestra capacidad de expresar ideas
Más detallesPrincipios de diseño de lenguajes
Capítulo 1 Principios de diseño de lenguajes Objetivo El alumno describirá los procedimientos y gramáticas empleadas en el diseño de los lenguajes de programación. Figura 1.1: Preguntas incómodas 1.1.
Más detallesProgramación de Ordenadores. Dept. Ciencias de la Computación e I.A. Universidad de Granada
TEMA Programación de Ordenadores Dept. Ciencias de la Computación e I.A. Universidad de Granada 1 Índice Resolución de Problemas con Ordenadores Algoritmo Metodología de la programación Lenguajes de programación
Más detallesPANORAMA GENERAL DE LOS µc
PANORAMA GENERAL DE LOS µc Sistemas Digitales II Este tipo de dispositivos en la actualidad se encuentran en los supermercados, artículos electrodomésticos, instrumentos musicales, juguetes, equipo automotriz
Más detallesDESARROLLO DE SOFTWARE
DESARROLLO DE SOFTWARE Grado en Ingeniería de Computadores Universidad de Alcalá Curso Académico 2011/12 Curso 1º Cuatrimestre 2º GUÍA DOCENTE Nombre de la asignatura: Código: 590000 Titulación en la que
Más detallesBiblioteca de recursos. Descargado desde
Biblioteca de recursos Descargado desde www.rededuca.net Informática 1. Representación y comunicación de la información. 2. Elementos funcionales de un ordenador digital. 3. Componentes, estructura y funcionamiento
Más detalles