AUTÓMATAS Y GRAMÁTICAS CALENDARIO CRONOGRAMA AUTÓMATAS Y GRAMÁTICAS FECHA TEMAS Explicación de la materia, condiciones de regularización. 15-mar Introducción a los autómatas finitos, alfabetos, cadena de caracteres, concatenación de cadenas, lenguajes, operaciones sobre lenguajes, autómatas finitos 22-mar Autómatas finitos deterministas y no deterministas - Trabajo en clase. 29-mar Expresiones regulares, generación de autómatas a partir de expresiones regulares 5-abr Uso de las expresiones regulares para la validación de datos Trabajo en clase. 12-abr Análisis Léxico. Reconocimiento de tokens. Diagramas de transición. Reconocimiento de palabras reservadas. Trabajo en clase 19-abr TP N° 1 Gramática, jerarquía de gramática - correspondencia entre gramáticas y lenguajes 26-abr Análisis sintáctico, ascendente y descendente - Autómata de pila 3-may Maquina de Turing - Introducción a problemas irresolubles y NP 10-may TP N° 2 - Presentación TP final 17-may MESAS 24-may FERIADO 31-may PARCIAL 7-jun Clase de consulta sobre trabajo final 14-jun REGULARIDADES CONDICIONES DE REGULARIZACIÓN • Asistencia, el alumno debe tener el 80% de la asistencia a las clases síncronas. • Parcial, se realizará un parcial durante el cursado que el alumno deberá aprobar. • Trabajos prácticos: se realizarán 2 trabajos prácticos y 3 trabajos de clase a lo largo del cursado, todos los trabajos comenzarán durante la clase y el alumno deberá realizar las entregas en tiempo y forma. • Trabajo en la plataforma (glosario, foro, etc) CONDICIONES PARA APROBAR LA MATERIA • Presentación de trabajo final y preguntas sobre la teoría. BIBLIOGRAFÍA • John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, "TEORÍA DE AUTÓMATAS, LENGUAJES Y COMPUTACIÓN". Pearson Addison Wesley. (Tercera Edición). • A. Aho, R.Sethi, J. Ullmam “COMPILADORES PRINCIPIOS, TECNICAS Y HERRAMIENTAS”. Pearson Addison Wesley. (Primera y Segunda Edición). • Dean Kelley “TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES“ Prentice Hall (Segunda Edición). • Cases Muñoz-Luis Villodre. “LENGUAJES, GRAMÁTICAS Y AAUTÓMATAS – Curso básico” Alfaomega INTRODUCCIÓN • Teoría de autómatas (estudio de dispositivos de cálculos abstractos) • Máquina de Turing – describir los límites de lo que una máquina puede y no puede hacer. https://www.youtube.com/watch?v=uoKLtu2Am6k https://www.youtube.com/watch?v=0DFqSmdbsUM • 1940-1950 máquinas simples denominadas autómatas finitos. • 1969 S. Cook plantea los problemas insolubles o NP-difíciles. AUTOMATAS FINITOS I • Modelo útil para muchos tipos de hardware o software • Software para diseñar y probar circuitos digitales. • Analizador léxico. • Software para explorar textos largos. • Software para sistemas con estados finitos. AUTOMATAS FINITOS II SISTEMA COMBINACIONAL • Se denomina sistema combinacional o lógica combinacional a todo sistema lógico en el que sus salidas son función exclusiva del valor de sus entradas en un momento dado, sin que intervengan en ningún caso estados anteriores de las entradas o de las salidas. AUTOMATAS FINITOS - EJEMPLO CONCEPTOS EN LA TEORÍA DE AUTÓMATAS • ALFABETOS • CADENA DE CARACTERES • LONGUITUD DE LA CADENA • POTENCIAS DEL ALFABETO • CONCATENACIÓN DE CADENAS ALFABETO • Un alfabeto es un conjunto de símbolos finito y no vacío. • Se utiliza el símbolo ∑ EJEMPLO • 1. ∑ = {0,1}, el alfabeto binario. • 2. ∑ = {a,b, . . . , z}, el conjunto de todas las letras minúsculas. • 3. ∑ = {0,1, . . . ,9}, el conjunto de los dígitos del 0 al 9. • 4. El conjunto de todos los caracteres ASCII o el conjunto de todos los caracteres ASCII CADENA DE CARACTERES • Una cadena de caracteres (palabra) es una secuencia finita de símbolos seleccionados de algún alfabeto. Ejemplo: • “01101” es una cadena del alfabeto binario ∑ = {0,1}. La cadena “111” es otra cadena de dicho alfabeto. • “hola” es una cadena del alfabeto ∑ = {a-z}. • “2456” es una cadena del alfabeto ∑ = {0-9}. CARACTERISTICAS DE LAS CADENA CADENA VACIA La cadena vacía es aquella cadena que presenta cero apariciones de símbolos. Esta cadena, designada por ε, es una cadena que puede construirse en cualquier alfabeto. LONGUITUD DE UNA CADENA Número de posiciones ocupadas por símbolos dentro de la cadena. EJEMPLO • La cadena “01101” tiene una longitud de 5. • Notación: w es |w|. Por ejemplo, |011| = 3 • |ε|= 0 POTENCIAS DE UN ALFABETO I Conjunto de todas las cadenas de una determinada longitud de dicho alfabeto utilizando una notación exponencial. para que sea el conjunto de las cadenas de longitud k EJEMPLO ∑ ={ ε } Si ∑ = {0,1}, entonces • ∑ = {0,1} • ∑ = {00,01,10,11} • = {000,001,010,011,100,101,110,111}, etc POTENCIAS DE UN ALFABETO II • ∑∗ Conjunto de todas las cadenas de un alfabeto EJEMPLO Si ∑ ={0,1} = > ∑∗ = { ε ,0,1,00,01,10,11,000, . . .} Ó ∑∗ = ∑ ∪ ∑ ∪ ∑ ∪ · · · • ∑ Conjunto de todas las cadenas de un alfabeto menos el vacio EJEMPLO Si ∑ ={0,1} = > ∑ = { 0,1,00,01,10,11,000, . . .} Ó ∑ =∑ ∪ ∑ ∪··· ∑∗ = ∑ ∪ { ε }. CONCATENACIÓN DE CADENAS • Sean x e y dos cadenas. Entonces, xy denota la concatenación de x e y, es decir, la cadena formada por una copia de x seguida de una copia de y. EJEMPLO Sean x = 01101 e y = 110. Entonces xy = 01101110 e yx = 11001101. ε w = w ε = w. POTENCIA DE CADENAS • Si w = 122 sobre el alfabeto Σ = { 1, 2 } • w0 = ε • w1=122 • w2=122122 • w3=122122122