Planificaciones FIUBA

7514 - Lenguajes Formales
PLANIFICACIONES
Planificaciones
7514 - Lenguajes Formales
Docente responsable: KUHN MONICA
1 de 6
Actualización: 1ºC/2015
7514 - Lenguajes Formales
PLANIFICACIONES
Actualización: 1ºC/2015
OBJETIVOS
Que el alumno aprenda los conceptos del paradigma de la programación funcional basándose en los
conceptos teóricos básicos del Cálculo Lambda utilizando en la práctica los lenguajes funcionales Lisp, FP y
APL.
CONTENIDOS MÍNIMOS
-
PROGRAMA SINTÉTICO
Unidad I Sistema FP
Atomos, , secuencias e indefinido. Funciones primitivas. Formas funcionales. Definición de funciones
Unidad II APL
Tipos de datos simples y estructurados. Operadores monádicos y diádicos. Operadores aplicados a vectores
y arreglos n dimensionales. Resolución de problemas en modo expresión. Definición de funciones y
procedimientos. Transmisión de parámetros.
Unidad III Cálculo Lambda
Definición. Sintaxis. Variables libres y ligadas. Reglas de substitución. Reglas de conversión alfa, beta y etha.
Orden de evaluación: orden normal y orden aplicativo. Aplicaciones.
Unidad IV Lisp
Funciones primitivas. Definición de funciones. Recursividad. Definición de ambiente. Formas funcionales.
PROGRAMA ANALÍTICO
Unidad 1: Sistema FP
Conjuntos de objetos: átomos, secuencias e indefinido.
Funciones primitivas: selectores, distribución, trasposición, rotación, condicional, predicados.
Formas funcionales: composición, construcción, inserción aplicación a todo. Definición de funciones. Resolución de
problemas en modo FP sin el uso de la recursividad ni la iteración.
Unidad 2: APL
Tipos de datos simples y estructurados.
Operadores monádicos y diádicos. Operadores aplicados a vectores y arreglos multidimensionales. Producto
interno y producto externo. Modo comando y modo programa.
Definición de funciones y procedimientos. Transmisión de parámetros. Resolución de problemas en una única
expresión eficiente utilizando el modo comando sin recursividad ni iteración.
Unidad 3: Cálculo Lambda
Definición. Sintaxis. Variables libres y ligadas. Reglas de substitución.
Reglas de conversión: alfa, beta y etha. Orden de evaluación: orden Normal y orden aplicativo. Combinadores.
Puntos fijos.
Aplicaciones: Conectivos proposicionales, numerales de Church, Thunks. Evaluación de expresiones lambda
aplicando las reglas de conversión y los distintos ordenes.
Unidad 4: Lisp
Átomos y Listas. Primitivas básicas de Lisp. Predicados y condicionales. Definición de funciones. Pasaje de
parámetros.Definición de ambiente en los lenguajes funcionales. Abstracción de funciones y recursividad.
Formas funcionales.
Aplicación a la definición de un GPS.
Máquina virtual de un Pseudo C en Lisp. Máquina virtual de Lisp en Lisp. Definición de pattern matching.
Resolución de juegos.
Resolución del problema de N reinas en un tablero de N x N.
BIBLIOGRAFÍA
- LISP de P.H.Winston y B.K.P. Horn
Ed.Addison-Wesley Iberoamericana
- Principles of functional Programming
De Glaser Hankin y Till Ed. P.H.I.
- Lenguajes de Programación. Diseño e implementación
de Pratt Ed. P.H.H.
- Functional Programming Practice and Theory
de Bruce Maclennan Ed. Addison Wesley
- Functional Programming
2 de 6
7514 - Lenguajes Formales
PLANIFICACIONES
Actualización: 1ºC/2015
de Anthony Field, Peter Harrison Ed. Addison Wesley
- John Backus - Communications of the ACM 1978
Webgrafía:
http://tryapl.org/
http://tutorial.dyalog.com/next.htm
http://lisp.plasticki.com/
RÉGIMEN DE CURSADA
Metodología de enseñanza
- Clases teórico-prácticas
Exposición teórica de conceptos fundamentales, con resolución metódica de problemas tipo y ensayos sobre
objetivos.
- Clases prácticas
Resolución por parte de los alumnos y controlada por los docentes auxiliares de problemas correspondientes a
las unidades temáticas del programa, ya sea por escrito o por computadora (programas). En general se
tratará de problemas abiertos, que generen dudas y motiven la consulta a los docentes y la profundización del
conocimiento a través de la bibliografía. Durante el curso se plantearán trabajos prácticos con problemas
complejos a resolver por programación, que los alumnos deberán desarrollar individualmente
- Clases de consulta
Modalidad de Evaluación Parcial
Evaluación
De manejo de conceptos, aplicación de conocimientos y dominio de técnicas, mediante la respuesta a
preguntas y la resolución de problemas por escrito en evaluaciones parciales e integradoras, y el desarrollo
controlado de trabajos prácticos en computadora.
Las evaluaciones parciales e integradoras son por unidades o subunidades temáticas.
La evaluación de los trabajos por computadora es por presentación en tiempo y forma (plazos y formato
establecido), método de desarrollo (aplicación de método de desarrollo de programas visto en el curso) y
corrección del resultado (cumplimiento de objetivos del programa)
3 de 6
7514 - Lenguajes Formales
PLANIFICACIONES
Actualización: 1ºC/2015
CALENDARIO DE CLASES
Semana
Temas de teoría
Resolución
de problemas
Laboratorio
Otro tipo
Fecha entrega
Informe TP
Bibliografía
básica
<1>
17/08 al 22/08
Sistema F.P.
Primitivas
Ejercicios en FP
John Backus Communication
s of the ACM
1978
<2>
24/08 al 29/08
Def. de
funciones en
F.P.
Ejercicios en FP
John Backus Communication
s of the ACM
1978
<3>
31/08 al 05/09
Modos de
resolución en
F.P.
Resolución de
ejercicios en
FP en modo FP
y modo iterativo
Communication
s of the ACM
1978 John
Backus
<4>
07/09 al 12/09
A.P.L. Modo
comando
Ejercicios en
APL
Lenguajes de
Programación.
Diseño e
implementación
de Pratt
Ed. P.H.H.
Webgrafía:
http://tryapl.org/
http://tutorial.dy
alog.com/next.h
tm
<5>
14/09 al 19/09
Operadores
monádicos y
diádicos
Ejercicios en
APL modo
comando
Lenguajes de
Programación.
Diseño e
implementación
de Pratt
Ed. P.H.H.
Webgrafía:
http://tryapl.org/
http://tutorial.dy
alog.com/next.h
tm
<6>
21/09 al 26/09
Modo
programa en
A.P.L.
Ejercicios en
APL
Lenguajes de
Programación.
Diseño e
implementación
de Pratt
Ed. P.H.H.
Webgrafía:
http://tryapl.org/
http://tutorial.dy
alog.com/next.h
tm
<7>
28/09 al 03/10
Cálculo
Lambda.
Sintaxis
Ejercicios en
Cálculo
Lambda
<8>
05/10 al 10/10
Reglas de
substitución.
Reglas de
conversión
Reducción de
expresiones
Lambda
aplicando
reglas de
substitución/redu
cción
<9>
12/10 al 17/10
Orden de
evaluación
aplicativo y
normal
Ejercios
aplicando los
dos ordenes de
evaluación
<10>
19/10 al 24/10
Puntos fijos.
Aplicaciones.
Numerales de
Church.
Ejercicios de
aplicación
<11>
26/10 al 31/10
Lisp. Funciones
primitivas
Ejercicios
aplicando las
funciones
LISP de
P.H.Winston y
B.K.P. Horn
4 de 6
7514 - Lenguajes Formales
Semana
Temas de teoría
PLANIFICACIONES
Resolución
de problemas
Laboratorio
Otro tipo
Actualización: 1ºC/2015
Fecha entrega
Informe TP
Bibliografía
básica
primitivas de
Lisp
Webgrafía:
http://lisp.plastic
ki.com/
LISP de
P.H.Winston y
B.K.P. Horn
Webgrafía:
http://lisp.plastic
ki.com/
<12>
02/11 al 07/11
Definición de
funciones en
Lisp.
Ejercicios
definiendo
funciones en
Lisp
<13>
09/11 al 14/11
Ambiente en
Lisp
Interprete de
Lisp en Lisp.
Ejercicios
evaluando los
distintos
abientes
<14>
16/11 al 21/11
Definición de la
máquina
virtual de Lisp
en Lisp
LISP de
P.H.Winston y
B.K.P. Horn
Webgrafía:
http://lisp.plastic
ki.com/
Máquina
virtual de un
pseudo C en
Lisp.
Definición de la
máquina
virtual de un
Pseudo C en
Lisp
Fecha de evaluación integradora LISP de
P.H.Winston y
B.K.P. Horn
Webgrafía:
http://lisp.plastic
ki.com/
<15>
23/11 al 28/11
Resolución del
GPS en Lisp
Lisp en
macheo de
patrones,
caminos en
grafos y/o
resolución de
juegos
Fecha de evaluación integradora LISP de
P.H.Winston y
B.K.P. Horn
Webgrafía:
http://lisp.plastic
ki.com/
<16>
30/11 al 05/12
Pattern
matching.
Thunks.
Problema de
las n reinas
Aplicaciones de
Lisp en
macheo de
patrones,
caminos en
grafos y/o
resolución de
juegos
Fecha de evaluación integradora LISP de
P.H.Winston y
B.K.P. Horn
Webgrafía:
http://lisp.plastic
ki.com/
5 de 6
7514 - Lenguajes Formales
PLANIFICACIONES
Actualización: 1ºC/2015
CALENDARIO DE EVALUACIONES
Evaluación Parcial
Oportunidad
Semana
Fecha
Hora
1º
14
10/06
19:00
2º
15
17/06
19:00
3º
16
24/06
19:00
4º
9:00
6 de 6
Aula