Download FIEC01552

Document related concepts

Programación funcional wikipedia , lookup

Dylan (lenguaje de programación) wikipedia , lookup

Lisp wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Expresión S wikipedia , lookup

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