Créditos
4
Horas Estimadas
38h
Temas
11
Temario
Gramáticas y lenguajes formales
Definición formal, derivaciones, árboles, ambigüedad
3h 20min
Jerarquía de Chomsky
Regulares, libres de contexto, sensibles, enumerables
3h 0min
Autómatas finitos
AFD, AFN, minimización, equivalencia, Pumping
4h 0min
Expresiones regulares
Sintaxis, equivalencia AFN, aplicación (grep, lex)
3h 0min
Gramáticas independientes del contexto
Formas normales, simplificación, parsing
3h 20min
Autómatas push-down
AP determinista y no determinista, parsing LL/LR
4h 0min
Análisis sintáctico
Descendente recursivo, LL(1), shift-reduce, LR(0)
4h 20min
Máquinas de Turing
Definición, variantes, decidibilidad
3h 20min
Semántica de lenguajes
Estática, tipado, ámbito, operacional
3h 0min
Análisis semántico
Tabla de símbolos, verificación de tipos
3h 0min
Proceso de compilación
Fases: léxico, sintáctico, semántico, optimización
3h 20min
Metodología
Teoría
Clase teórica sobre paradigmas de programación, semántica, tipos de datos y comparación de lenguajes.
Práctica
Laboratorio de programación en múltiples paradigmas: imperativo, orientado a objetos, funcional, lógico.
Actividades
- Implementación en Haskell (funcional)
- Implementación en Prolog (lógico)
- Implementación en Python/Java (OOP)
- Comparación de paradigmas
- Trabajos Prácticos de programación
Evaluación
Regularidad
Aprobar como mínimo 2 parciales con nota >= 4. Asistencia regular obligatoria (80% mínimo).
Promoción
Examen final escrito y práctico de programación en múltiples paradigmas.
Recuperatorio
Recuperatorio en el primer semestre del año siguiente.
Objetivos de Aprendizaje
- Comparar y contrastar paradigmas de programación.
- Implementar soluciones usando programación funcional.
- Implementar soluciones usando programación lógica.
- Comprender los fundamentos teóricos de los lenguajes de programación.
Competencias
- Programar en al menos tres paradigmas distintos.
- Analizar ventajas y desventajas de cada paradigma.
- Implementar algoritmos funcionales y lógicos.
- Comparar lenguajes de programación según sus características.
Ejercicios Tipo Parcial
Programación funcional
3/5
Implementar en Haskell una función que filtre números pares y los multiplique por 2.
Solución: f = map (*2) . filter even
Programación lógica
3/5
Escribir en Prolog un programa que determine si un número es primo.
Solución: primo(N) :- N>1, forall(between(2,N-1,I), N mod I == 0).
Preguntar al Tutor
Resolvé dudas sobre esta materia
Practicar
Ejercicios adaptativos por tema
Crear Flashcards
Repetición espaciada para memorizar
Cargando materiales...