COMPILACIÓN I
|
|
|
- Samuel Reyes Silva
- hace 9 años
- Vistas:
Transcripción
1 COMPILACIÓN I Profesores: Eneko Agirre, Nerea Ezeiza, Julian Gutierrez (Información sobre tutorías, teléfonos, etc. en página web) Objetivos: El propósito de esta asignatura es doble. Por un lado, se pretende que el alumno se familiarice con las técnicas que se utilizan para traducir los constructores de los lenguajes de programación de alto nivel en código objeto, por otro, que sea capaz de aplicar los conocimientos anteriores en la resolución de problemas prácticos en distintos campos. Dentro de esta filosofía general se hará especial hincapié en conseguir que el alumno: - Conozca los principales conceptos en el área: Compilación, interpretación, traducción cruzada, bootstrapping, linkedition,... - Conozca las distintas fases del compilador y las principales técnicas aplicadas en cada una de ellas. - Conozca y sepa utilizar algunas herramientas de ayuda a la construcción de compiladores, especialmente en el entorno UNIX (LEX e YACC). - Pueda aplicar los conocimientos teóricos adquiridos para resolver, por medio de alguno de los mecanismos de construcción de traductores estudiados, problemas que se encuadren dentro de la extensa área de la traducción. Práctica Durante el curso se realizará la siguiente práctica: Diseño e implementación de un traductor sencillo a partir de las ideas presentadas en los tres primeros temas. Esta práctica (10 semanas) se desarrollará durante el periodo Octubre (Diciembre/Enero), siendo su objetivo que el alumno conozca y utilice algunas de las técnicas básicas de construcción de traductores. La evaluación de la práctica se realizará utilizando como criterio los objetivos abarcados. Clases prácticas La organización de las clases prácticas se concibe como complemento de las exposiciones realizadas en las clases de teoría, con una planificación paralela y una organización y metodología específica. El objetivo perseguido para las clases prácticas es fomentar el trabajo continuo y en equipo, acumular elementos para una evaluación más completa y dar claves concretas a los estudiantes sobre la forma de evaluar la asignatura. La asistencia a las clases prácticas podrá ser libre (no influye en la calificación) o reglada (constituye un elemento complementario de evaluación). La opción de asistencia reglada está limitada exclusivamente a estudiantes que tengan que desarrollar la práctica durante el curso y tiene las siguientes características: control de absentismo, trabajo en grupo y un régimen de entregas y presentaciones obligatorias.
2 Evaluación La evaluación de la asignatura se basará en la calificación de la práctica y del examen final*. La nota final de la asignatura será la media de la obtenida en la práctica con la obtenida en el examen. Para aprobar la asignatura se deben superar el examen y la práctica. Los alumnos que aprobaron la práctica el curso anterior están exentos de volver a realizar la práctica básica (5), salvo que manifiesten explícitamente su voluntad en sentido contrario. Presentarse al examen provoca el incremento en el número de convocatoria. Presentar únicamente la práctica no. *La nota del examen final de los estudiantes acogidos a las clases prácticas regladas con evaluación positiva será aumentada en un punto, a partir de la calificación 4. Temario de la asignatura Tema 1. Tema 2. Tema 3. Tema 4. Tema 5. Introducción. La fase de análisis léxico. Aproximación a la definición y desarrollo de un traductor sencillo. La fase de análisis sintáctico. Gestión de memoria en tiempo de ejecución. Bibliografía Compilers. Principles, Techniques and Tools. Second Edition. Aho, A.V.; Lam, M.S.; Sethi, R.; Ullman, J.D. Addison Wesley Computing Compiladores. Principios, técnicas y herramientas. Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman. ADDISON WESLEY IBEROAMRICANA 1990 Construcción de compiladores: Principios y práctica. Louden, K. Ed. Thomson LEX: Un generador de reconocedores léxicos. (Master en Ciencia y Tecnología de los Computadores 1993) José Miguel Alonso y José Miguel Blanco Arbe YACC: Una herramienta para el desarrollo de traductores (Master en Ciencia y Tecnología de los Computadores 1993) José Miguel Alonso y José Miguel Blanco Arbe Compiladores. Conceptos fundamentales. Teufel, Schmidt & Teufel Addison Wesley Iberoamericana 1995 Object Oriented Compiler Construction. Jim Holmes. Prentice Hall 1995 Compilers. Their Design and Construction Using Pascal, R. Hunter. John Wiley & Sons Ltd 1985 Introduction to Compiler Construction with UNIX. Schereider, A.T., Friedman, H.G. Jr. Prentice Hall: Englewood Cliffs, NJ Compiler Construction, T. Waite, G. Goos. Springer Verlag, 1984 High Level Languages and their Compilers, D. Watson. Addison Wesley, 1989
3 Tema 1. Introducción 1.1 Compiladores y traductores Intérpretes 1.2 Características de los lenguajes de programación Evolución histórica Principales características Definición de un lenguaje de programación Estructura del lenguaje, tipos de datos y estructuras de control Clasificación de los lenguajes de programación 1.3 Estructura de un compilador Análisis léxico Análisis sintáctico Análisis semántico Tratamiento de errores Manejo de la Tabla de Símbolos Generación de código intermedio Optimización de código Generación de código Front end / Back end 1.4 Compiladores de varias pasadas 1.5 Entorno software del compilador Preprocesadores Ensambladores Linkeditores y cargadores Decompiladores 1.6 Herramientas para a construcción de compiadores Generación de analizadores y traductores Generación automática de código 1.7 Especificación y diseño de compiladores Diagramas T Bootstrapping (arranque) Traducción incremental/interactiva De proyecto UNCOL a la JVM Compilación cruzada
4 Referencia básica: Capítulos 1 y 11 de [Aho,90], capítulo 1 de [Aho, 06; Louden, 04] Referencias complementarias: [Weiser,92], capítulo 1,2 y 3 de [Watson,89], capítulos 1 y 2 de [Waite, 84], capítulos 2 y 17 de [Sánchez, 84] y capítulos 1, 11 y 12 de [Sanchís,86]. Objetivos: Este tema tiene un objetivo fundamental: que el alumno conozca con detalle la estructura general de un compilador, estructura en la que se irán incluyendo los contenidos presentados a lo largo del curso. Además se pretende que el alumno conozca una serie de términos, conceptos, técnicas y herramientas propias del área de la traducción de los lenguajes de programación y, más concretamente, que: Diferencie claramente compiladores de intérpretes, y conozca la estructura de ambos. Conozca la evolución de las técnicas de compilación y su relación con la evolución de los lenguajes de programación de alto nivel. Conozca el significado de términos propios del área de la traducción de lenguajes, como la compilación en varias pasadas, preprocesamiento o decompilación. Conozca la existencia de herramientas de ayuda a la generación automática de traductores. Maneje los diagramas T como herramientas de especificación de compiladores. Conozca y comprenda el significado de términos como bootstrapping, traducción interactiva o compilación inversa.
5 Tema 2: La fase de análisis léxico 2.1 Introducción Su relación con el resto del compilador Los tokens y sus atributos Problemas que conllevan algunas características del lenguaje fuente Errores léxicos 2.2 Conceptos básicos Lenguajes regulares Expresiones regulares y definiciones regulares Autómatas finitos 2.3 Diseño e implementación de un analizador léxico Construcción de un analizador léxico a partir de un autómata finito determinista. Algunas consideraciones de implementación: o Utilización de buffers o El tratamiento de las palabras clave (palabras reservadas) o Acciones asociadas a los estados finales, su implementación o Implementación de la función de transición. 2.4 Un lenguaje de especificación de analizadores léxicos: LEX Refencia básica: Capítulo 3 de [Aho,90; Aho, 06], capítulo 2 de [Louden, 04] y [Miguel, 93a] Referencias complementarias: [Levine,92] Objetivos: El objetivo general de este tema es que el alumno sea capaz de construir de una manera sistemática, analizadores léxicos eficientes. Al finalizar el tema el alumno debe: Ser capaz de especificar un analizador léxico para un lenguaje de programación utilizando las expresiones regulares. Poder diseñar e implementar un analizador léxico basado en la interpretación de un autómata finito determinista sobre la cadena de entrada. Manejar con soltura los problemas prácticos asociados a la construcción de analizadores léxicos, como pueden ser el manejo de buffers, el reconocimiento de palabras reservadas o el tratamiento de errores léxicos. Ser capaz de construir un reconocedor léxico sencillo utilizando LEX.
6 Tema 3: Aproximación a la definición y desarrollo de un traductor sencillo 3.1 Introducción 3.2 Definición sintáctica de un lenguaje 3.3 Traducción dirigida por la sintaxis Esquemas de traducción dirigidos por la sintaxis Recorrido en profundidad del árbol de análisis Atributos sintetizados 3.4 Análisis sintáctico Análisis descendente Análisis predictivo Construcción de un analizador predictivo Transformación de una gramática en predictiva 3.5 Traducción de los principales constructores de los L.P. Expresiones aritméticas Expresiones booleanas Instrucciones condicionales Instrucciones repetitivas 3.6 Análisis semántico Validación estática y dinámica Especificación de un verificador de tipos Equivalencia y conversión de tipos Funciones y operadores sobrecargados 3.7 La Tabla de Símbolos Contenido y manejo de la Tabla de Símbolos Representación de la Tabla de Símbolos El alcance de la información 3.8 Tipos de código intermedio Códigos de tres direcciones Máquinas abstractas con pila o»jvm o»p code Notación postfija, árboles sintácticos y AST s 3.9 Extensión de la traducción de los principales constructores de los L.P. Declaraciones Instrucciones de asignación Expresiones booleanas Referencias a Tablas
7 Referencia básica: Capítulos 2, 4, 5, 6 y 8 de [Aho,90], capítulos 2, 4, 5 y 6 de [Aho,06] y capítulos 3, 4 y 6 de [Louden, 04]. Referencias complementarias: Capítulo 2 de [Fischer, 88] Relación con otros temas: Con el tema de introducción, concretamente con el apartado en que se presentan las fases del compilador. Enlaza con el tema 2 que habla del análisis léxico. A su vez supone una introducción a los contenidos que se presentarán en los temas 4, 5 y 6. Especialmente en lo que hace relación al análisis descendente predictivo y a la traducción dirigida por la sintaxis. Objetivos: El objetivo general de este tema consiste en hacer posible que el alumno pueda enfocar el problema de construir un traductor de un lenguaje de programación de una manera sistemática y en una fase muy temprana del desarrollo de la asignatura. Cuando termina la exposición del tema el alumno debe poder: Obtener a partir de una gramática que tenga recursividad a izquierdas o prefijos comunes (características que impiden la traducción descendente predictiva) una gramática equivalente sin esos problemas. Construir un analizador descendente predictivo recursivo a partir de una gramática y comprender su funcionamiento. Especificar una traducción sencilla utilizando esquemas de traducción dirigida por la sintaxis y construir un programa que implemente este tipo de especificaciones. Relacionar de una manera operativa un analizador sintáctico que le solicita sucesivamente tokens. Contenidos: Este tema es una introducción a unas técnicas concretas asociadas a la construcción de front ends: las de construcción de analizadores descendentes recursivos predictivos y las especificaciones basadas en la sintaxis del lenguaje de entrada. El tema se desarrolla en paralelo a la solución de un problema sencillo : el diseño de un traductor que, tomando como entrada una expresión aritmética, genera como resultado su traducción a código de tres direcciones. De esta manera sucesivamente se motiva el concepto de especificación basada en la sintaxis, a continuación se introduce el método de construcción de analizadores, se relacionan especificación léxica y sintáctica del lenguaje y se acaba con el diseño completo del traductor. A partir de la asimilación de estos contenidos los alumnos pueden comenzar el diseño de un traductor para un lenguaje suficientemente significativo.
8 Tema 4. Análisis sintáctico 4.1 El analizador sintáctico Su relación con el resto del compilador Análisis descendente y ascendente 4.2 Definición sintáctica del lenguaje fuente Gramáticas independientes del contexto Ambigüedad Recursividad a izquierdas Factorización a izquierdas 4.3 Análisis descendente Analizadores predictivos Condiciones LL(1) Análisis descendente recursivo Análisis descendente predictivo no recursivo 4.4 Análisis ascendente Análisis por reducción desplazamiento Analizadores basados en la precedencia de operadores Analizadores LR 4.5 Tratamiento de errores sintácticos 4.6 YACC: generador de analizadores sintácticos Referencia básica: Capítulos 3 y 4 de [Aho, 90; Aho 06], capítulos 3, 4 y 5 de [Louden, 04] y [Miguel, 93b] Relación con otros temas: Este tema queda suficientemente enfocado tras el tema 1. En esta organización del curso retoma de una manera más formal y metódica las técnicas relativas al análisis sintáctico presentadas en el tema 2. Objetivos. El objetivo general de este tema es que el alumno pueda diseñar e implementar, utilizando métodos adecuados, analizadores sintácticos eficientes. Más concretamente se pretende que el alumno: Domine los principios básicos del análisis predictivo, tanto ascendente como descendente. Pueda utilizar con fluidez las gramáticas independientes del contexto no sólo como herramienta de especificación de lenguajes sino también para la construcción de analizadores sintácticos. En consecuencia debe, por ejemplo, conocer los problemas que conlleva trabajar con gramáticas ambiguas y las posibles soluciones. Sea capaz de construir analizadores recursivos predictivos y de obtener gramáticas que cumplan las condiciones LL(1) y pueda incluir un mecanismo de recuperación de errores en sus analizadores. Comprenda el proceso de análisis LR, los principios que lo sustentan, los problemas que se plantean y las soluciones a dichos problemas. Ser capaz de construir un analizador sintáctico sencillo utilizando Yacc.
9 Tema 5: Gestión de memoria en tiempo de ejecución. 5.1 Introducción y asignación estática. 5.2 Asignación dinámica de memoria utilizando una pila Acceso a variables no locales. Paso de parámetros. 5.3 Asignación dinámica de memoria: "Heap allocation" Asignación y desasignación explícita e implícita de memoria. Técnicas para la asignación dinámica de la memoria. Referencia básica: Capítulo 7 de [Aho, 90; Aho, 06] Referencias complementarias: Capítulo 10 de [Sanchis, 86]. Objetivos. El objetivo general de este tema es que el alumno pueda construir un traductor que genere código para una máquina abstracta con direccionamiento a posiciones de memoria. Este objetivo debe ser posible considerando lenguajes que permitan la asignación estática de memoria o aquellos que soporten la recursividad, la imbricación de bloques o la asignación dinámica de memoria en tiempo de ejecución. Objetivos detallados Identificar claramente las implicaciones que desde el punto de vista de la gestión de memoria en tiempo de ejecución tienen determinadas características de los lenguajes de programación. Poder especificar por medio de un E.T.D.S. el proceso de generación de código para traductores de lenguajes en que es posible la asignación estática o por medio de una pila de la memoria. Asociar, para lenguajes que permiten el anidamiento de bloques, la gestión de la tabla de símbolos durante la validación semántica con el proceso de generación de código. Conocer las técnicas básicas de implementación de la recolección de basuras y pueda plantearse el diseño de un recolector de memoria asociado a un intérprete.
PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS PROGRAMA DE LABORATORIO CÓDIGO: 777 CRÉDITOS: 4 NOMBRE CURSO: ESCUELA: PRE-REQUISITO: Organización de Lenguajes y Compiladores
Carrera: SCC - 0425 4-2-10. Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.
1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Programación de sistemas Ingeniería en Sistemas Computacionales SCC - 0425 4-2-10
Toda copia en PAPEL es un "Documento No Controlado" a excepción del original.
S U P E RIO R DE MISANTLA Apartado: 7.1 Copia No. Código:PD-SCD-1016 Versión No.: 02 Hoja : 2 de 12 4.- COMPETENCIAS A DESARROLLAR 4.1 Competencias Específicas: Diseña mediante el uso de reglas semánticas
Contenido. 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
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
Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.
Universidad de Puerto Rico Recinto de Mayagüez Facultad de Artes y Ciencias DEPARTAMENTO DE CIENCIAS MATEMÁTICAS Programa de Autómata y Lenguajes Formales Curso: Autómata y Lenguajes Formales Codificación:
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Ingeniería Técnica en Informática de Sistemas Segundo curso Departamento de Informática y Análisis Numérico Escuela Politécnica Superior Universidad de Córdoba
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal
PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES
UNIVERSIDAD FERMIN TORO VICE RECTORADO ACADEMICO UNIVERSIDAD FACULTAD DE INGENIERIA ESCUELA DE MANTENIMIENTO MECÁNICO ESCUELA DE TELECOMUNICACIONES ESCUELA DE ELÉCTRICA ESCUELA DE COMPUTACIÓN PROGRAMA
METACOMPILADOR 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
2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.
2007/2008 Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS 1.-Introducción. -Comprender cómo funciona un lenguaje de programación 2. Características del lenguaje C -Entender las
Profs. Carlos Pérez y Ricardo Monascal
TRADUCTORES E INTERPRETADORES Clase 0: Introducción al Curso Quiénes somos? Prof. Carlos Pérez [email protected] Prof. Ricardo Monascal [email protected] Oficina: MYS-228A (Sí, es la misma) Recursos
Nombre de la asignatura : Lenguajes y Autómatas. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB- 9324
. D A T O S D E L A A S I G N A T U R A Nombre de la asignatura : Lenguajes y Autómatas Carrera : Ingeniería en Sistemas Computacionales Clave de la asignatura : SCB- 9 Horas teoría-horas práctica-créditos
Generación de Código Intermedio
Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede
Conceptos básicos sobre gramáticas
Procesamiento de Lenguajes (PL) Curso 2014/2015 Conceptos básicos sobre gramáticas Gramáticas y lenguajes Gramáticas Dado un alfabeto Σ, un lenguaje es un conjunto (finito o infinito) de cadenas de símbolos
Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje
Nombre de la asignatura: Programación Básica Créditos: 2 4-6 Objetivo de aprendizaje Plantear metodológicamente la solución de problemas susceptibles de ser computarizados a través del manejo de técnicas
ESCUELA: UNIVERSIDAD DEL ISTMO
1.-IDENTIFICACIÓN ESCUELA: UNIVERSIDAD DEL ISTMO CLAVE: 3041 GRADO: ING. EN COMPUTACIÓN, CUARTO SEMESTRE TIPO DE TEÓRICA/PRÁCTICA ANTECEDENTE CURRICULAR: 3033.- OBJETIVO GENERAL Proporcionar al alumno
Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I
Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.
Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas
Unidad I Introducción a la programación de Sistemas M.C. Juan Carlos Olivares Rojas Agenda 1.1 Qué es y que estudia la programación de sistemas? 1.2 Herramientas desarrolladas con la teoría de programación
LP - Lenguajes de Programación
Unidad responsable: 270 - FIB - Facultad de Informática de Barcelona Unidad que imparte: 723 - CS - Departamento de Ciencias de la Computación Curso: Titulación: 2016 GRADO EN INGENIERÍA INFORMÁTICA (Plan
Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas
Universidad Centroccidental Lisandro Alvarado Decanato de Ciencias y Tecnología Departamento de Sistemas PROGRAMA INSTRUCCIONAL PROGRAMA: ANALISIS DE SISTEMAS DEPARTAMENTO: SISTEMAS ASIGNATURA: INTRODUCCIÓN
Unidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Lenguaje de programación. COMPILADORES Unidad I: Introducción al proceso de compilación
COMPILADORES Unidad I: Introducción al proceso de compilación Flor Prof. Flor Narciso GIDyC-Departamento de Computación LABSIULA-Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de
GUÍA DE APRENDIZAJE ARQUITECTURA DE COMPUTADORES
GUÍA DE APRENDIZAJE ARQUITECTURA DE COMPUTADORES GRADO EN INGENIERIA DE COMPUTADORES Datos Descriptivos CENTRO RESPONSABLE: E.U. DE INFORMATICA OTROS CENTROS IMPLICADOS: CICLO: Grado sin atribuciones MÓDULO:
UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA VICERRECTORADO ACADÉMICO COORDINACION DE PRE-GRADO PROYECTO DE CARRERA DE INGENIERIA INDUSTRIAL
VICERRECTORADO ACADÉMICO COORDINACION DE PRE-GRADO PROYECTO DE CARRERA DE INGENIERIA INDUSTRIAL PROGRAMA: PROGRAMACION I CÓDIGO ASIGNATURA: 1215-208 PRE-REQUISITO: 1215-102 SEMESTRE: II (SEGUNDO) UNIDADES
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
ALGORITMOS, ESTRUCTURAS Y PROGRAMACION
VICERRECTORADO ACADÉMICO DIRECCIÓN DE GESTIÓN, DESARROLLO E INNOVACIÓN CURRICULAR FACULTAD: INGENIERIA ESCUELAS: COMPUTACION - SISTEMA UNIDAD CURRICULAR: ALGORITMOS, ESTRUCTURAS Y PROGRAMACION FECHA DE
La aportación de la asignatura al perfil del egresado será específicamente la siguiente:
1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Lenguajes y Autómatas II. Ingeniería en Sistemas Computacionales SCD-1016 (Créditos) (SATCA 44 ) 2 3 5 2.- PRESENTACIÓN
16 Análisis sintáctico I
2 Contenido Recordando la estructura de un compilador Recordando el análisis léxico l análisis sintáctico Comparación con el análisis léxico l Rol del Parser Lenguajes de programación Gramáticas structura
GUÍA DOCENTE ELECTRÓNICA DIGITAL GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
GUÍA DOCENTE 2014-2015 ELECTRÓNICA DIGITAL 1. Denominación de la asignatura: ELECTRÓNICA DIGITAL Titulación GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA Código 6413 2. Materia o módulo a la
ASIGNATURA: Arquitectura de Computadores
ASIGNATURA: Arquitectura de Computadores I. T. Informática de Gestión Universidad de Alcalá Curso Académico 11/12 Curso 2º Cuatrimestre 1º GUÍA DOCENTE Nombre de la asignatura: Arquitectura de Computadores
PROGRAMA INSTRUCCIONAL
UNIVERSIDAD FERMÍN TORO VICE RECTORADO ACADÉMICO FACULTAD DE INGENIERÍA PROGRAMA INSTRUCCIONAL DATOS BÁSICOS DE LA ASIGNATURA Nombre de la asignatura: Código Semestre U.C. Pre- Requisito COMPUTACIÓN PARA
Lenguajes y Compiladores Análisis Sintáctico Parte I. Teoría Lenguajes 1
Facultad de Ingeniería de Sistemas Lenguajes y Compiladores Análisis Sintáctico Parte I 1 Introducción El analizador sintáctico recibe una secuencia de tokens y decide si la secuencia está correcta o no.
Unidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas
Unidad V Análisis Semántico M.C. Juan Carlos Olivares Rojas Agenda 5.1 Analizador semántico 5.2 Verificación de tipos en expresiones. 5.3 Conversión de tipos. 5.4 Acciones agregadas en un analizador sintáctico
Carrera: SCM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.
1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Teoría de la computación Ingeniería en Sistemas Computacionales SCM - 0434 3-2-8
Guía de estudio para el examen de admisión al Posgrado en Ciencias de la Computación
Guía de estudio para el examen de admisión al Posgrado en Ciencias de la Computación El examen consiste en cinco temas generales, repartidos en 90 preguntas de opción múltiple. El tiempo acordado para
PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS
PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS 1. DATOS INFORMATIVOS MATERIA: DISEÑO DE LENGUAJES Y AUTOMATAS: CARRERA: INGENIERÍA DE SISTEMAS NIVEL:
Programación I.
Programación I [email protected] [email protected] Profesores teoría Toni Navarrete e-mail: despacho: [email protected] 371 Jesús Ibáñez e-mail: despacho: [email protected] 381 Introducción
Programación I. Carrera: ECM Participantes Participantes de las academias de ingeniería electrónica de los Institutos Tecnológicos.
.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Programación I Ingeniería Electrónica. ECM-043 3-2- 2.- HISTORIA DEL PROGRAMA Lugar
Cátedra de Sintaxis y Semántica de Lenguajes
Universidad Tecnológica Nacional Facultad Regional Córdoba Cátedra de Sintaxis y Semántica de Lenguajes Modalidad Académica Coordinador de Cátedra: Ing. Juan Giró Ciclo Lectivo: 2009 Nombre de la Materia
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERIA SYLLABUS
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERIA SYLLABUS PROYECTO CURRICULAR: Ingeniería de Sistemas ASIGNATURA: Electiva en Ciencias de la computación NOMBRE DEL DOCENTE: Deicy Alvarado,
Programa del curso IC-5701. Compiladores e Intérpretes. Escuela de Computación. Carrera de Ingeniería de Computación, Plan 410.
Programa del curso IC-5701 Compiladores e Intérpretes Escuela de Computación Carrera de Ingeniería de Computación, Plan 410. I Parte. Aspectos relativos al plan de estudios 1 Datos generales Nombre del
Tema: Análisis Sintáctico
Compiladores. Guía 3 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis Sintáctico Contenido En esta guía se abordarán los conceptos pertenecientes al componente de análisis
ASIGNATURA: ESTRUCTURA DE DATOS II
ASIGNATURA: ESTRUCTURA DE DATOS II Cód: 31-206 Régimen cuatrimestral Horas reloj semanales: 4 Horas teóricas: 15 Horas prácticas: 45 Horas totales: 60 Carrera: Sistemas 2016 FUNDAMENTOS: Un tipo de dato
Capítulo 5: Traducción Dirigida por Sintaxis
Capítulo 5: Traducción Dirigida por Sintaxis Javier Carvajal Universidad de Costa Rica, Escuela de Ciencias de la Computación e Informática, San José, Costa Rica, [email protected] and
UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS
UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN MATERIA : ESTRUCTURAS DE DATOS NIVEL : TERCER SEMESTRE FECHA DE ELABORACIÓN: Julio 19, 1999. DURACIÓN:
Análisis Exploratorio de Datos 1231X (B.O.E. del 19-julio-2000). Troncal. Obligatoria. Optativa.
DATOS BÁSICOS DE LA ASIGNATURA Nombre: Análisis Exploratorio de Datos Código: 1231X2. Año del Plan de Estudios: 2000 (B.O.E. del 19-julio-2000). Tipo: Troncal. Obligatoria. Optativa. Créditos: Totales:
Nombre de la asignatura: Investigación de Operaciones II. Créditos: Aportación al perfil
Nombre de la asignatura: Investigación de Operaciones II Créditos: 2-2-4 Aportación al perfil Analizar, diseñar y gestionar sistemas productivos desde la provisión de insumos hasta la entrega de bienes
GUÍA DOCENTE DE PROYECTO DE AUTÓMATAS Y LENGUAJES
GUÍA DOCENTE DE PROYECTO DE AUTÓMATAS Y LENGUAJES La presente guía docente corresponde a la asignatura Proyecto de Autómatas y Lenguajes (PAyL) del Grado en Ingeniería Informática, aprobada para el curso
JavaCC Parte I. 1 Compiladores / Guía VII / Ciclo Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores.
1 Compiladores / Guía VII / Ciclo 02-2016 Centro de Investigación y Transferencia de Tecnología JavaCC Parte I Contenido Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores En la presente
Sílabo del curso Investigación Operativa II
Sílabo del curso Investigación Operativa II Marzo julio 2013 VI Ciclo Profesor Luis Miguel Sierra 1 I. Datos generales del curso Asignatura : Investigación Operativa II Código : 03145 Requisito : Investigación
Arquitectura y Sistemas de Operativos
Universidad Tecnológica Nacional Facultad Regional San Francisco Técnico Superior en Programación Arquitectura y Sistemas de Operativos PLANIFICACIÓN CICLO LECTIVO 2013 ÍNDICE TÉCNICO SUPERIOR EN PROGRAMACIÓN...
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA PROYECTO CURRICULAR DE INGENIERÍA INDUSTRIAL
I. IDENTIFICACIÓN DE LA ASIGNATURA PROGRAMACIÓN ORIENTADA A OBJETOS CÓDIGO DE LA ASIGNATURA 00 ÁREA ACADÉMICA Informática y Electivas Libres SEMESTRE Segundo PLAN DE ESTUDIOS 00 - I TIPO DE ASIGNATURA
SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
GUÍA DOCENTE Fundamentos de Computadores
GUÍA DOCENTE 2015-2016 Fundamentos de Computadores 1. Denominación de la asignatura: Fundamentos de Computadores Titulación Grado en Ingeniería Informática Código 6352 2. Materia o módulo a la que pertenece
Conceptos de Algoritmos, Datos y Programas
Conceptos de Algoritmos, Datos y Programas Año 2015 Carreras: Lic. en Informática P2015 Lic. en Sistemas P2015 APU P2015 Año: 1 Duración: Cuatrimestral Coordinador: Ing. Armando De Giusti Profesores: Esp.
PROGRAMA INSTRUCCIONAL INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
UNIVERSIDAD FERMIN TORO VICE RECTORADO ACADEMICO UNIVERSIDAD FACULTAD DE INGENIERIA ESCUELA DE MANTENIMIENTO MECÁNICO ESCUELA DE TELECOMUNICACIONES ESCUELA DE ELÉCTRICA ESCUELA DE COMPUTACIÓN PROGRAMA
LIBRO GUIA: INVESTIGACIÓN DE OPERACIONES Hamdy A. Taha. Editorial Pearson Prentice Hall, 2004
UNIVERSIDAD TECNOLÓGICA DE PEREIRA FACULTAD DE INGENIERÍAS: ELÉCTRICA, ELECTRÓNICA, FÍSICA Y CIENCIAS DE LA COMPUTACIÓN PROGRAMA INGENIERÍA DE SISTEMAS Y COMPUTACIÓN ASIGNATURA: INVESTIGACIÓN DE OPERACIONES
Tema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA
DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA Nombre del Módulo: PROGRAMACIÓN EN JAVASCRIPT Código: CSTI0087 total: 51 Horas Objetivo General: Crear contenido web basado en
Un. VI. Generador de código intermedio.
Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes
GUÍA DOCENTE SISTEMAS BASADOS EN MICROPROCESADOR
GUÍA DOCENTE 2015-2016 SISTEMAS BASADOS EN MICROPROCESADOR 1. Denominación de la asignatura: SISTEMAS BASADOS EN MICROPROCESADOR Titulación GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA Código
GUÍA DOCENTE 2016/2017. Introducción a los Sistemas Operativos Grado en INGENIERÍA INFORMÁTICA 1º curso. Modalidad Presencial
Introducción a los Sistemas Operativos Grado en INGENIERÍA INFORMÁTICA 1º curso Modalidad Presencial Sumario Sumario 2 Datos básicos 3 Breve descripción de la asignatura 4 Requisitos previos 4 Objetivos
Fundamentos de Bases de Datos
Fundamentos de Bases de Datos Titulación: ITI Sistemas Curso: 3º, C1 Carácter: Troncal Profesor teoría: Jesualdo Tomás Fernández Breis Despacho: 2.26 Tutorías: Martes 9.30-12.30; 16.30-18.30 h, Miércoles
ESTRUCTURAS DE DATOS
CURSO: ESTRUCTURAS DE DATOS 1 SEMESTRE: III 2 CODIGO: 602301 3 COMPONENTE: 4 CICLO: 5 AREA: Profesional 6 FECHA DE APROBACIÓN: 7 NARURALEZA: OBLIGATORIO 8 CARÁCTER: TEORICO - PRÁCTICO 9 CRÉDITOS (RELACIÓN):
Operaciones algebraicas elementales (Unidad I del curso Matemáticas Básicas).
I. Identificadores de la asignatura Clave: UMA1007 95 Créditos: 8 Materia: Programación Lineal Departamento: Ciencias Sociales Instituto: Ciencias Sociales y Administración Programa: Licenciatura en Economía
Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5
Planificaciones 7540 - Algoritmos y Programación I Docente responsable: AZCURRA DIEGO ANDRES 1 de 5 OBJETIVOS Objetivos estratégicos: -Desarrollar el concepto algorítmico. -Aplicar técnicas de programación
: Algorítmica y Estructura de Datos I
FACULTAD POLITÉCNICA DIRECCIÓN ACADÉMICA PROGRAMA DE ESTUDIO I. IDENTIFICACIÓN Carrera : Ingeniería de Sistemas CARGA HORARIA (Horas reloj) Asignatura : Algorítmica y Estructura de Datos I Carga Horaria
EI MT1008 Programación II
GRADO EN INGENIERÍA INFORMÁTICA GRADO EN MATEMÁTICA COMPUTACIONAL EI1008 - MT1008 Programación II Curso 2010-2011 Departamento de Lenguajes y Sistemas Informáticos 1. Datos de la asignatura Carácter: Formación
Las Etapas de la Compilación
Las de la Compilación El en la Compilación Universidad de Cantabria Outline 1 El Problema 2 Las y el Qué pasos son necesarios dar para hallar la estructura de un programa? En qué pasos podemos dividirlos
PROGRAMACIÓN UNIDADES
PROGRAMACIÓN Semestre: Segundo Horas: 90 horas Hrs/sem: 4.5 Créditos: 9 Clave: AI-02 DESCRIPCIÓN DE LA ASIGNATURA Al finalizar el curso el alumno tendrá el conocimiento y la capacidad de implementar programas
Procesadores de lenguaje Tema 6 La tabla de símbolos
Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de
UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES
UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Disciplinaria Unidad académica: Programación Orientada a Objetos Ubicación: Cuarto Semestre Clave: 2087 Horas
Jesús Manuel Carrera Velueta José Juan Almeida García Fecha de elaboración: Mayo 6 de 2010 Fecha de última actualización:
PROGRAMA DE ESTUDIO Programa Educativo: Área de Formación : Licenciatura en Ingeniería Ambiental Sustantiva profesional. Programa elaborado por: PROGRAMACIÓN APLICADA Horas teóricas: 1 Horas prácticas:
PROGRAMA DE CIENCIAS DE COMPUTADORAS PRONTUARIO
UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO METROPOLITANO FACULTAD DE CIENCIAS Y TECNOLOGÍA DEPARTAMENTO DE CIENCIAS DE COMPUTADORAS Y MATEMÁTICAS PROGRAMA DE CIENCIAS DE COMPUTADORAS PRONTUARIO
