Download Pontificia Universidad Javeriana Departamento de Ingeniería de

Document related concepts

Programación funcional wikipedia, lookup

Wolfram (lenguaje de programación) wikipedia, lookup

Oz (lenguaje de programación) wikipedia, lookup

Ocaml wikipedia, lookup

Haskell wikipedia, lookup

Transcript
Pontificia Universidad Javeriana
Departamento de Ingeniería de Sistemas
Lenguajes de Programación
Syllabus
Nombre de la Asignatura
Id de la Asignatura
Fecha de Actualización
Horas semanales
Créditos Académicos
Pre-Requisitos
Vigencia
Lenguajes de Programación
4204
Julio 2014
Horas Contacto Clase : 4
3
Estructuras de datos
2014-03
Horas Trabajo Independiente : 2
Objetivos
 Aprender los conceptos y herramientas esenciales para implementar un lenguaje de programación.
 Revisar diferentes paradigmas de programación, diferentes a los que el estudiante ha utilizado hasta el
momento, para el estudiante pueda seleccionar el lenguaje de programación más adecuado para el
problema que se desee resolver.
 Proporcionar al estudiante los conocimientos necesarios para que pueda entender la teoría que existe
detrás de los diferentes lenguajes de programación.
Habilidades que contribuye a Desarrollar
Estrategias Pedagógicas
1. El curso combina varias estrategias docentes. La teoría del curso se entregará a través de clases
expositivas tradicionales y se evaluarán a través de tres parciales.
2. La mayoría de las clases teóricas se alternarán con sesiones prácticas orientadas a aplicar los conceptos
aprendidos en clases. Los estudiantes deberán desarrollar un proyecto semestral en el cual construirán un
intérprete para un lenguaje de programación. La mayoría de las sesiones prácticas estarán orientadas a
resolver aspectos específicos de dicho proyecto.
3. La última parte del curso sobre paradigmas de programación, tendrá asociados talleres, en los cuales se
resolverán problemas específicos asociados a cada paradigma.
Evaluación
 Primer Parcial
 Segundo Parcial
 Parcial Final
 Talleres
 Proyecto
20%
20%
20%
20%
20%
Referencias Bibliográficas
Texto guía:
[1]
Scott, "Programming Language Pragmatics." 2003
Referencias Bibliográficas:
[2]
Hopcroft, "Introduction to Automata Theory, Languages, and Computation.” 2006
[3]
Linz, "An Introduction to Formal Languages and Automata" 2012.
[4]
Aho et al, "Compilers: Principles, Techniques, and Tools" 2006.
[5]
Pierce, "Types and Programming Languages." 2002
[6]
Russell et al "Artificial Intelligence. A modern approach"
[7]
Harper, "Practical Foundations for Programming Languages"
[8]
Krishnamurthi, "Programming Languages: Application and Interpretation"
Programa por semana y por clase
Semana
Clase
Tema
1
1
Presentación del Curso
1
2
Motivación: autómatas y expresiones regulares
2
3
Conceptos básicos y de repaso
2
4
 Conceptos formales sobre autómatas. AFD
3
3
4
5
6
7
 Conceptos formales sobre autómatas. AFND
Aplicación de conceptos de autómatas
 Expresiones y lenguajes regulares
5
5
6
6
7
7
8
9
10
11
12
13
Aplicación de conceptos de expresiones regulares
Análisis léxico
Aplicación de conceptos de análisis léxico
 Parcial 1
 Motivación: sintaxis y gramáticas
 Sintaxis y gramáticas
8
9
9
10
10
11
11
14
15
16
17
18
19
20
Laboratorio: Aplicación de conceptos de sintaxis y gramáticas
Semántica de lenguajes de programación
Aplicación de conceptos de semántica
Programación imperativa
Aplicación de conceptos de programación imperativa
Primera Entrega del proyecto
 Control de Flujo
12
12
13
14
14
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Aplicación de conceptos de control de flujo
Tipos de datos
Parcial 2
Subrutinas
Aplicación de conceptos de subrutinas
Segunda Entrega del proyecto
Programación funcional
Calculo Lambda
Lógica Proposicional y de Primer Orden
Taller de programación funcional
Programación Lógica
Prog. Concurrente y Paralela
Parcial 3
Taller de programación lógica
15
15
16
17
17
18
18