Download Lenguajes_de_Program..
Document related concepts
Transcript
(*) UNIVERSIDAD MICHOACANA DE SAN NICOLÁS DE HIDALGO FACULTAD DE INGENIERÍA ELÉCTRICA DIVISIÓN DE ESTUDIOS DE POSGRADO LENGUAJES DE PROGRAMACION No. Hrs. /Semana: Duración en semanas: Total de Horas: Número de Créditos: 4 16 64 8 Conocimientos previos recomendados: Objetivo: Entender los conceptos de diseño, implementación y uso de los lenguajes de programación, que permitan su correcta elección de acuerdo al problema; así como el poder diseñar e implementar nuevos lenguajes de acuerdo a las necesidades de cierto problema dado. Programa sintético: Tema 1. 2. 3. 4. 5. 6. Introducción a los Lenguajes de Programación Diseño de los Lenguajes de Programación Programación Funcional Programación Lógica Lenguajes tipo Script Lenguajes orientados a objetos Total de Horas Duración (hrs.) 10 10 11 11 11 11 64 Programa desarrollado: 1. Introducción a los lenguajes de Programación 1.1. Conceptos generales 1.1.1. Paradigmas: imperativo, funcional, lógico, orientado a objetos. 1.1.2. Reseña histórica y clasificación de los lenguajes de programación 1.2. Estructura 1.2.1. Sintaxis y Semántica 1.2.2. Gramáticas generativas 1.2.3. Control de flujo y administración de memoria 1.3. Compiladores e Intérpretes 1.3.1. Análisis léxico, sintaxis y semántica 1.3.2. Generación de código, ejecución e interpretación 1.3.3. Implementación: compilación, interpretación e implementación híbrida 1.4. Aplicación de Lenguajes Formales 1.4.1. Autómatas 1.4.2. Gramáticas 1.4.3. Expresiones regulares 2. Diseño de los Lenguajes de Programación 2.1. Unidades de programa 2.1.1. Árboles de ejecución 2.1.2. Modelos de organización de memoria 2.1.3. Pilas de control y registros de activación 2.1.4. Implementación de secuencia llamada y retorno 2.2. Asociaciones y ambientes de referenciación 2.2.1. Referenciación local 2.2.2. Referenciación no local 2.3. Tipos y Objetos 2.3.1. Propiedades, variables, constantes, tipos primitivos, estructuras de datos, apuntadores 2.3.2. Verificación de tipos, conversión, igualdad y equivalencia 2.3.3. Declaración de tipos dinámicos, tipos como variables, alcance de declaraciones 2.4. Funciones y subrutinas 2.4.1. Compilación separada, paso de parámetros, implementación 2.4.2. Bloques de activación, control de llamado y retorno 2.4.3. Funciones como variables y como parámetros 2.4.4. Encapsulamiento en base de funciones 2.4.5. Implementación de variables locales, globales y parámetros 2.4.6. Alcance léxico 2.4.7. Recursión 2.4.8. Excepciones y manejo de errores 2.5. Administración de la memoria 2.5.1. Procesos con memoria compartida: tareas y co-rutinas 2.5.2. Sincronización, creación y destrucción 2.5.3. Memoria dinámica, variables, espacio de memoria alcanzable 2.5.4. Administración manual, recolección de basura, fragmentación y compactación 3. Programación funcional: Lenguaje LISP 3.1. Paradigma funcional y las matemáticas 3.2. Paradigma aplicativo, asignación 3.3. Componentes de los lenguajes funcionales 3.4. Manejo de memoria 3.5. Estructura de datos 3.6. Definición de funciones 3.7. Recursión 3.8. Funciones de orden superior 3.9. Listas y estructuras complejas 3.10. Áreas de aplicación y comparación con otros lenguajes funcionales 4. Programación Lógica: Lenguaje PROLOG 4.1. Componentes de los lenguajes Lógicos 4.2. Lenguajes a base de reglas 4.3. Manejo de memoria 4.4. Claúsulas de Horn 4.5. Algoritmo de unificación 4.6. Backtracking 4.7. Estructuras de datos 4.8. Listas y estructuras complejas 4.9. El corte (cut !) 4.10. Modificaciones a la base de conocimientos 4.11. Sistemas expertos, bases de datos deductivas 4.12. Inteligencia Artificial 4.13. Otros lenguajes funcionales 5. Lenguajes tipo Script: Lenguajes PERL y PYTHON 5.1. Características de los lenguajes tipo Script 5.2. Programación Cliente-Servidor (CGI) 5.3. Datos escalares 5.4. Arreglos asociativos 5.5. Expresiones regulares 5.6. Librerías en Perl 5.7. Bases de datos, gráficos, correos, etc. 5.8. Programación CGI 5.9. Seguridad en Perl 6. Lenguajes Orientados a Objetos: Lenguaje JAVA 6.1. Conceptos generales 6.1.1. Características de los lenguajes orientados a objetos 6.1.2. Mecanismos para la encapsulación 6.1.3. Genericidad, sobrecarga de funciones y operadores, herencia simple, herencia múltiple, interfaces 6.1.4. Multi-threading 6.1.5. Excepciones 6.1.6. Monitores 6.1.7. Streams de datos 6.1.8. TCP/IP 6.2. Programación Concurrente 6.2.1. Concepto de concurrencia 6.2.2. Tarea, proceso y subrutina 6.2.3. Concurrencia con threads 6.2.4. Sincronización de procesos 6.2.5. Compartición de datos y memoria 6.3. Programas Visuales 6.3.1. DEVELOPPER Bibliografía: [1] Autores. Título. Editorial. Lugar. Año. [2] Metodología de enseñanza-aprendizaje: Revisión de conceptos, análisis y solución de problemas en clase Lectura de material fuera de clase Ejercicios fuera de clase (tareas) Investigación documental Elaboración de reportes técnicos o proyectos X X X X X Metodología de evaluación: Asistencia Tareas Elaboración de reportes técnicos o proyectos Exámenes Programa propuesto por: Fecha de aprobación: X X X X