Subido por Creative Brain

090-454

Anuncio
UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA
FACULTAD DE INGENIERIA EN SISTEMAS DE INFORMACION
INGENIERIA EN SISTEMAS DE INFORMACION
JORNADA DIARIA VESPERTINA
Curso: LENGUAJES FORMALES Y TEORÍA DE AUTÓMATAS
Pre-requisitos: 090411,090412
Código: 090454
PRESENTACION
Este curso es un contacto importante con las nociones y conceptos del proceso computacional o proceso
algorítmico. Forma las bases para los cursos de complejidad y compiladores. Incluye el estudio de técnicas de
reconocimiento de patrones, procesos básicos computacionales, análisis léxico y sintáctico, así como una base para
computabilidad.
OBJETIVOS GENERALES.
Proporcionar al estudiante la base científica para resolver problemas importantes dentro de la lógica algorítmica,
fundamentales para la construcción de compiladores.
OBJETIVOS ESPECIFICOS.
Que el estudiante se introduzca en el análisis léxico, como método de solución de problemas de renacimiento de
patrones.
Que el alumno cuente con una idea básica de procesos computacionales.
CONTENIDO PROGRAMÁTICO DEL CURSO
1. Unidad Lenguaje
1.1
Definición de lenguaje, orientada a la formalidad, operaciones con lenguajes.
1.2
Conceptos básicos orientados a la teoría de compiladores.
1.3
Terminología asociada a la definición conceptual de lenguaje.
1.4
Esquema y simbología de definición de lenguaje.
2. Unidad Lenguajes formales.
2.1
Conceptos básicos.
2.2
Operadores básicos * y +.
2.3
Primera definición de lenguaje. Lenguaje formal. Lenguaje regular.
2.4
Expresiones regulares.
2.5
Precedencia en las expresiones regulares.
2.6
Álgebra de expresiones regulares.
2.7
Diseño de expresiones regulares.
3. Unidad Autómatas finitos.
3.1
Conceptos básicos.
3.2
Definición formal de autómata finito. Autómatas finitos en representación gráfica.
3.3
Análisis de la entrada a través de un autómata finito. Lenguaje aceptado por un autómata finito.
3.4
Ejemplos de autómatas orientados a diseñar la etapa de léxico de un lenguaje de
3.5
programación.
3.6
Tipos de autómatas.
3.7
Autómata finito determinista.
3.8
Autómata finito no determinista.
3.9
Análisis de la entrada a través de un autómata finito no determinista.
3.10 Autómata con transiciones-E
3.11 Análisis de la entrada a través de un autómata finito con transiciones-E.
3.12 Autómata no determinista y con transiciones-E.
3.13 Conversión de autómata finito no determinista a autómata finito determinista.
3.14 Conversión de autómata finito con transiciones-E
3.15 Conversión de expresión regular a autómata finito no determinista.
3.16 Conversión de expresión regular a autómata finito determinista.
4. Unidad Gramáticas.
4.1
Conceptos básicos.
4.2
Definición formal.
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
Convenciones de notación.
Notación simplificada.
Lema de Arden.
Derivaciones, Árboles de direvación.
Lenguaje generado por una gramática.
Diseño de gramáticas. Técnicas para el diseño de gramáticas. Modularidad de las gramáticas.
Límites de las gramáticas.
Diseño arbitrario de gramáticas.
Primer acercamiento a la jerarquía de Chomsky para gramáticas.
Gramática regular implementada en un autómata finito no determinista.
5. Unidad Autómatas de pila
5.1
Conceptos básicos.
5.2
Definición formal.
5.3
Jerarquía de lenguajes.
5.4
Reconocimiento de una cadena en un autómata de pila.
5.5
Seguimiento en formato de corrida de escritorio.
5.6
Gramáticas independientes del contexto, implementadas en autómatas de pila.
6. Unidad Máquina de Turing
6.1
Conceptos básicos.
6.2
Máquina de Turing como realizadora de cálculos.
6.3
Reconocimiento de una cadena de entrada.
6.4
Máquina de Turing como reconocedora de lenguajes.
6.5
Diseño de la máquina de Turing.
6.6
Técnicas para la construcción de las máquinas de Turing.
7. Unidad Expresiones, primer acercamiento.
7.1
Consideraciones para generar expresiones en lenguajes de programación.
7.2
Conceptos básicos.
7.3
Términos dentro de una expresión.
7.4
Tipos de operadores.
7.5
Prioridad o precedencia.
7.6
Notaciones.
7.7
Generación de notaciones a través de árboles binarios.
7.8
Recorrido del árbol.
7.9
Importancia de la notación posfija.
7.10 Algoritmo para convertir de notación fija a notación posfija.
7.11 Algoritmo para evaluar notaciones pos fijas.
7.12 Aplicación de los algoritmos de conversión y evaluación en un programa.
7.13 Comentarios finales.
EVALUACIÓN
Primer Parcial
Segundo Parcial
Laboratorios,
tares
y
trabajos de investigación
Examen Final
Nota Final
10 puntos
20 puntos
20 puntos
50 puntos
100 puntos
BIBLIOGRAFIA
Libro de Texto
Teoría de Autómatas y Lenguajes Formales", Dean Kelley. Ed. Prentice Hall, 1995.
Brookshear, J. Glenn “Teoría de la Computación, Lenguajes Formales, Autómatas y Complejidad”, Editorial
Addison Wesley Iberoamérica, primera edición USA 1993.
Hopcroft, John y Jeffey Ullman, “Introducción a la Teoría de Autómatas, Lenguajes y Computación”. CECSA,
tercera reimpresión, México 1997
“Compiladores. Principios, técnicas y herramientas”, Aho A.V., Sethi R,. & Ullman J.D. Ed: Addison – Wesley
Iberoamericana. 1990.
Descargar