Download Lenguajes_de_Program..

Document related concepts

Programación funcional wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Scheme wikipedia , lookup

Dylan (lenguaje de programación) wikipedia , lookup

Scala (lenguaje de programación) wikipedia , lookup

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