Lenguajes Formales y de Programación
DESCRIPCIÓN DEL CURSO:
Este curso busca introducir al estudiante con los fundamentos teóricos matemáticos y conceptos que fundamentan los lenguajes de programación. El estudiante debe adquirir la base teórica necesaria y requerida para que pueda llevar un curso avanzado de lenguajes y compiladores.
Se busca, además, definir los modelos matemáticos asociados a la representación de los diferentes tipos de lenguajes para luego implementar estos conceptos en lenguajes de programación.
Es de primordial importancia que pueda reconocer cualquier tipo de gramática, pero, sobre todo, pueda manejar y diseñar gramáticas para lenguajes regulares y para lenguajes libres de contexto, además, de los modelos matemáticos que las resuelven. Se busca que el estudiante tenga mucha práctica en el diseño de gramáticas para representar lenguajes y que adquiera la habilidad de diseñarlas sin problema. Adquiriendo conceptos y los pueda relacionar a los aspectos técnicos y prácticos conociendo su aplicación en lenguajes reales conocidos. El estudiante debe aprender la teoría que esta atrás de los diferentes componentes de un compilador, las técnicas de programación usadas para poner esta teoría en práctica. El curso se enfoca y trata con profundidad la teoría de autómatas finitos buscando que el estudiante entienda el proceso matemático para encontrar los autómatas finitos y su implementación en un lenguaje de programación.
OBJETIVO GENERAL:
Objetivo General
Que el estudiante tenga los conceptos teóricos y matemáticos necesarios que fundamentan los lenguajes de programación y el diseño de lenguajes y compiladores.
Específicos
Al final del curso el estudiante deberá:
1. Definir cualquier lenguaje formal
2. Reconocer las características que identifican a cualquier tipo de gramática.
3. Manejar la terminología de los lenguajes y compiladores.
4. Conocer el modelo matemático que resuelve cada tipo de gramática.
5. Conocer el funcionamiento de un analizador léxico y su implementación
6. Conocer e implementar máquinas de estado finito
7. Diseñar e implementar gramáticas libres de contexto
8. conocer los conceptos que fundamentan el análisis sintáctico
9. Aplicar los modelos matemáticos que resuelven gramáticas de tipo 0
METODOLOGIA:
Para cada uno de los temas el docente proporcionará un conjunto de lecturas procedentes de una recopilación de diferentes fuentes bibliográficas que permitan abarcar los temas en su totalidad. Estas lecturas serán proporcionadas a través de la sección de documentos del sitio del curso creado en la Universidad Virtual. Las lecturas serán recopiladas y publicadas conforme avancen los temas y cada estudiante será responsable de bajarlas y leerlas para asegurar la comprensión de cada tema.
En cada una de las unidades a cubrir se realizarán actividades complementarias como investigaciones cortas, ejercicios en clase, tareas, evaluaciones cortas de comprensión, trabajos de grupo, según la unidad y el tema cubierto.
Se desarrollará el planteamiento de propuesta de un proyecto que deberá de cubrir la documentación respectiva del alcance, tiempo y costo que será presentado por los estudiantes al final del curso como una práctica integral.
- Profesor: Auder Morales