Download FIEC01552
Document related concepts
Transcript
ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS LENGUAJES DE PROGRAMACIÓN UNIDAD ACADÉMICA: CARRERA: ESPECIALIZACIÓN: ÁREA: TIPO DE MATERIA: EJE DE FORMACIÓN: Facultad de Ingeniería en Electricidad y Computación Ingeniería en Ciencias de Computación Sistemas Tecnológicos, Sistemas de Información y Sistemas Multimedia Computación TEÓRICA X PRÁCTICA Profesional 1. NOMBRE DE LA ASIGNATURA CÓDIGO FIEC01552 PRE-REQUISITOS FIEC04622 MATERIA LENGUAJES DE PROGRAMACIÓN PROGRAMACION ORIENTADA A OBJETOS CO-RE1 UISITOS EQUIVALENTE A CONVALIDA CON CRÉDITOS/HORAS/SEMANALES: TEÓRICOS 4 PRACTICOS PROFESOR RESPONSABLE Ing. Sergio Flores OBJETIVOS Conocer la sintaxis y semántica de los lenguajes de programación Entender el rol del hardware de la computadora en la implementación de la semántica del lenguaje Reconocer y relacionar la estructura interna para escribir mejores programas que utilicen el hardware de manera efectiva. Ser capaz de aprender y utilizar diferentes paradigmas para escribir programas de manera efectiva Mejorar habilidades de hablar en público a través de presentaciones orales. 2. PROGRAMA DE ESTUDIO: LENGUAJES DE PROGRAMACION IG1002-1 ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS 3. PROGRAMA RESUMIDO: Introducción Arquitectura y Gramática de los Traductores Arquitectura de Hardware y Software Gramáticas Formales Lenguajes de estado finito Encapsulación Tipos de datos Herencia Polimorfismo Expresiones Control de subprogramas Administración de almacenamiento 13. Lenguajes a utilizarse en el curso (lava — Ruby — SML — Squeak) 4. PROGRAMA DETALLADO 1. Introducción (2 sesiones) Introducción al programa — Organización del curso — Valoración de presentaciones, exámenes y proyectos Razones para estudiar lenguajes de programación Páginas Web HTML y SGML Páginas Web activas 2. Arquitectura y Gramática de los Traductores (1 sesión) Objetivos de los lenguajes Modelos de diseños de lenguajes: Imperativo (Comandos, sentencias, C, Pascal, Fortran, Basic) Aplicativo (Funcional, Lisp, ML) Basado en Reglas (Tablas de Decisión, relacionales, tablas lógicas, Prolog) Orientado a Objetos (Abstracción, Ruby, Smalltalk) Evolución de los lenguajes Semántica de los lenguajes de programación: Breve sumario de las teorías más importantes- Modelos gramaticales, modelos aplicativos, modelos axiomáticos, modelos de especificación PROGRAMA DE ESTUDIO: LENGUAJES DE PROGRAMACIÓN IG1002-1 ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS 3. Arquitectura de Hardware y Software (1 sesión) Discusión de las computadoras de firmware y capas virtuales de arquitectura de hardware y software. Arquitectura de Máquina: Máquina de von Neumann: unidad de memoria y procesamiento central Concepto de Firmware Definición de Lenguaje Ensamblador Discusión de varios tiempos de unión Arquitectura de software y maquinas virtuales 4. Gramáticas Formales (2 sesiones) Etapas en la traducción de un lenguaje Tipos de Gramáticas (Chomsky) BNF (Backus Naur Form) o gramáticas de contexto libre: Terminales, Noterminales, Producciones, Ambigüedad de las gramáticas Derivaciones, 5. Lenguajes de estado finito (2 sesiones) Diagramas de estado Autómatas Finitos de Estado (FSA) no-deterministicos y deterministicos Gramáticas Regulares Expresiones Regulares Algoritmo Recursivo Descendente 6. Encapsulación (2 sesiones) Tipos de datos elementales Propiedades de objetos de datos (I-value y r-value) Tipos de Datos Datos escalares y compuestos Operaciones y firmas de funciones Declaraciones Chequeo de Tipos y conversiones Datos primitivos y su almacenamiento Datos estructurados Tipos de datos estructurados: Cadenas — Arreglos — Registros — Punteros 7. Tipos de datos (2 sesiones) Tipos de datos abstractos Tipos y datos primitivos Tipos abstractos de datos: PROGRAMA DE ESTUDIO: LENGUAJES DE PROGRAMACIÓN IG1002-1 ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS Concepto de evolución de tipo de datos Encapsulación de la información — tipos de datos abstractos Equivalencia de tipos Definición de tipos Igualdad de tipos: equivalencia de nombre y estructural Equivalencia de tipos en ML, C, Ruby, Java Equivalencia de objeto de datos 8. Herencia (1/2 sesión) Herencia, clases derivadas Clases abstractas, clases amigas 9. Polimorfismo (1/2 sesión) Polimorfismo Inferencia de tipos en ML 10. Expresiones (1 sesión) Expresiones Secuencias de control Expresiones Aritméticas Notación prefijo, postfijo Evaluación prefijo Sentencias básicas Estructuras básicas de control Sintaxis e implementación 11. Control de subprogramas (1 sesión) Registros de activación Referencia de ambientes Reglas de ámbito Registros de activación Cadenas estáticas y dinámicas Transmisión de parámetros Parámetros actuales y formales Llamadas por nombre, valor, referencia y resultado Parámetros de entrada-Salida Implementación de mecanismos de transmisión de parámetros 12. Administración de almacenamiento (1 sesión) Almacenamiento de Pila vs. Heap Almacenamiento de pila Almacenamiento heap, asignación de tamaño fijo PROGRAMA DE ESTUDIO: LENGUAJES DE PROGRAMACIÓN IG1002-1 ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS Implementación de pila vs. Heap Recolección de basura Métodos para recolección de basura: Marcado y barrido Cuentas referenciales 13. Lenguajes a utilizarse en el curso Ruby (3 sesiones) Tour de Ruby: Tipo de Datos y Objetos — Expresiones y operadores — Sentencias y estructuras de control — Métodos La estructura y ejecución de programas en Ruby Expresiones regulares — Bloques — Clases y módulos SML (3 sesiones) Programación funcional — Tour de ML: Expresiones y estructuras de control — Tuplas — Listas — Registros — Inferencia de tipos y firmas — Datatypes — Manejo de almacenamiento — Tipo referencia Funciones; Polimorfismo — Recursión — Funciones anónimas — Funciones curry Excepciones: Declaración — Levantamiento - Manejo Squeak (3 sesiones) Tour rápido de Squeak: Historia de Smallyalk - Reglas básicas de Smalltalk — Menu Mundo — Ventanas: Workspace, Transcripts, Navegador (Browser) - SqueakMap Sintaxis Entorno de pro g ramación en Squeak — Programación Módica 5. TEXTO GUÍA Terence Pratt, Programming Languages, Design and Implementation, 4 Edición, 2001, Prentice Hall. 6. BIBLIOGRAFÍA R. Sebesta, Concepts of Programming Languages, 9 Edición, 2010, Addison-Wesley L. C. Paulson, ML for the working programmer, 2 Edición, 1996, Cambridge University Press. Dave Thomas, Programming Ruby, 3 Edición, 2009, The Pragmatic Bookshelf Hal Fulton, The Ruby Way, 2 Edición, 2006, Addison-Wesley Diego Gomez, Programando con Smalltalk, 2006, Edit Lin Editorial Stéphane Ducasse, Squeak by Example, 2008, Square Braket Associates Peter Linz, An Introduction to Formal Languages and Automata, 4 Edición, 2006, Jones and Barlett Publishers PROGRAMA DE ESTUDIO: LENGUAJES DE PROGRAMACIÓN IG1002-1 ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS 7. VISADO DECANO/DIRECTOR SECRETARIO ACADÉMICO STA ESCUELA SU ' ER • R PO /ÉCNICA ..-Ing. ergio lores FECHA: 18/05/2011 c.:;. Wa hington MedinVMc reira liblio.:0 // I ..111!' SUCRE • Riel TÉCNICRACADÉA eonor Cals .. .. G CHA: 18/05/2011 Ing. Was"-. on Medina FECHA: 18/05/2011 8. VIGENCIA DEL PROGRAMA RESOLUCIÓN COMISIÓN ACADÉMICA: TORAL CAc-2011-046 PROGRAMA DE ESTUDIO: LENGUAJES DE PROGRAMACIÓN IG1002-1 11/04/2011 'co