Teora de Autmatas y Lenguajes Formales Informtica Tcnica

  • Slides: 18
Download presentation
Teoría de Autómatas y Lenguajes Formales Informática Técnica de Gestión ESCUELA SUPERIOR DE INFORMATICA

Teoría de Autómatas y Lenguajes Formales Informática Técnica de Gestión ESCUELA SUPERIOR DE INFORMATICA Universidad de Castilla-La Mancha Tema 1. Introducción J. J. Castro Sánchez

Ciencias de la Computación • Teoría de Autómatas. Trata del estudio de máquinas de

Ciencias de la Computación • Teoría de Autómatas. Trata del estudio de máquinas de computación abstractas. • Teoría de la Computación. Trata del estudio de la computabilidad y de la complejidad. • Lenguajes y Gramáticas. Trata del estudio y formalización de los lenguajes. UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

Historia (I) • En 1930´s, A. Turing desarrolló una máquina abstracta denominada Máquina de

Historia (I) • En 1930´s, A. Turing desarrolló una máquina abstracta denominada Máquina de Turing para el estudio de la computabilidad. • En 1940´s y 1950´s, se desarrollan unas máquinas simples, en cuanto su funcionamiento, que fueron conocidas como autómatas finitos, para modelar el funcionamiento del cerebro. • También en los 1950´s, N. Chomsky comienza el estudio formal de las gramáticas (generadoras de lenguajes). UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

Historia (II) • En 1969, S. Cook extiende el estudio de Tuning. Cook separa

Historia (II) • En 1969, S. Cook extiende el estudio de Tuning. Cook separa aquellos problemas que pueden ser solucionados de aquellos que en principio pueden ser solucionados pero que en la práctica toman demasiados recursos. • Autómatas finitos y ciertas clases de gramáticas formales son usadas en el diseño y construcción de software. • La Máquina de Turing ayuda a comprender que es lo que podemos esperar de nuestro software. UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

¿Por qué estudiar TALF? • Autómatas Finitos son modelos útiles para muchos elementos hardware

¿Por qué estudiar TALF? • Autómatas Finitos son modelos útiles para muchos elementos hardware y software: – Software para diseñar y chequear la conducta de circuitos digitales. – El analizador léxico de un compilador. – Software para escanear grandes volúmenes de texto para encontrar patrones. – Software para verificar sistemas que tengan un número finito de estados, tales como protocolos de comunicación o de intercambio seguro de información. UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

¿Por qué estudiar TALF? • Autómatas son esenciales para el estudio de los límites

¿Por qué estudiar TALF? • Autómatas son esenciales para el estudio de los límites de la computación: – ¿Qué puede hacer un computador? Problema de la decibilidad. – ¿Qué puede hacer un computador eficientemente? Problema de la tratabilidad. UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

¿Por qué estudiar TALF? • Los lenguajes nos permiten comunicarnos con la máquina, parte

¿Por qué estudiar TALF? • Los lenguajes nos permiten comunicarnos con la máquina, parte de lo que puede hacer la máquina depende del poder descriptivo del lenguaje. – Compiladores. – Traductores. – Diseño de lenguajes de alto nivel. UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

Máquinas abstractas • • Autómatas Finitos. Autómatas a Pila. Autómatas linealmente acotados. Máquina de

Máquinas abstractas • • Autómatas Finitos. Autómatas a Pila. Autómatas linealmente acotados. Máquina de Turing. UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

Definición informal de autómata • Son sistemas que en todo momento se encuentran en

Definición informal de autómata • Son sistemas que en todo momento se encuentran en uno de un conjunto finito de estados. • El propósito de un estado es recordar la historia del sistema. • Puesto que el número de estados es finito, el sistema debe ser diseñado para recordar aquello que es importante y olvidar lo que no. • La ventaja de tener un número finito de estados es que el sistema podrá ser implementado con un fijo conjunto de recursos. UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

Ejemplo de AF • Sistema: Interruptor. • El sistema recuerda si está conectado (ON)

Ejemplo de AF • Sistema: Interruptor. • El sistema recuerda si está conectado (ON) o desconectado (OFF). • El usuario lo presiona. • Si está en OFF y es presionado pasa al estado ON. • Si está en ON y es presionado pasa al estado OFF. Presión Comienzo UNIVERSIDAD DE CASTILLA-LA MANCHA off on Presión © J. J. Castro-Schez, 2001/2002

Gramáticas Formales • • Gramática regulares. Gramáticas independientes de contexto. Gramáticas sensibles al contexto.

Gramáticas Formales • • Gramática regulares. Gramáticas independientes de contexto. Gramáticas sensibles al contexto. Gramática sin restricciones o de estructura de frase. UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

Definición informal de Gramática • Es el mecanismo empleado para establecer la estructura de

Definición informal de Gramática • Es el mecanismo empleado para establecer la estructura de un lenguaje, es decir las sentencias que lo forman. • Consiste de un conjunto de reglas sintácticas que establecen la forma en la que se pueden combinar los símbolos del alfabeto: – ORACION es un SUJETO y un PREDICADO. – SUJETO es una FRASE NOMINAL. – FRASE NOMINAL es un GRUPO NOMINAL y un CALIFICATIVO que puede o no estar. – GRUPO NOMINAL es un ARTICULO que puede no estar y un NOMBRE. – CALIFICATIVO es un ADJETIVO o una CONJUNCIÓN y una ORACION. UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

Tipos de Gramáticas • N. Chomsky clasifica las gramáticas en cuatro tipos: – Gramáticas

Tipos de Gramáticas • N. Chomsky clasifica las gramáticas en cuatro tipos: – Gramáticas sin restricciones o gramáticas de estructura de frases (Tipo 0). – Gramáticas sensibles al contexto (Tipo 1). – Gramáticas independientes de contexto (Tipo 2). – Gramáticas regulares (Tipo 3). Tipo 0 Tipo 1 UNIVERSIDAD DE CASTILLA-LA MANCHA Tipo 2 Tipo 3 © J. J. Castro-Schez, 2001/2002

Tipos de Lenguajes • Conforme a la clasificación de N. Chomsky, los lenguajes se

Tipos de Lenguajes • Conforme a la clasificación de N. Chomsky, los lenguajes se clasifican en cuatro tipos: – – Lenguajes sin restricciones (Tipo 0). Lenguajes sensibles (o dependientes) al contexto (Tipo 1). Lenguajes independientes de contexto (Tipo 2). Lenguajes regulares (Tipo 3). Tipo 0 Tipo 1 UNIVERSIDAD DE CASTILLA-LA MANCHA Tipo 2 Tipo 3 © J. J. Castro-Schez, 2001/2002

Teoría de Autómatas - Lenguajes Formales (Máquinas abstractas - Gramáticas Formales) equivale Gramática Máquina

Teoría de Autómatas - Lenguajes Formales (Máquinas abstractas - Gramáticas Formales) equivale Gramática Máquina describe reconoce genera Lenguajes UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

Teoría de Autómatas - Lenguajes Formales (Máquinas abstractas - Gramáticas Formales) Gramáticas Lenguajes Máquinas

Teoría de Autómatas - Lenguajes Formales (Máquinas abstractas - Gramáticas Formales) Gramáticas Lenguajes Máquinas Sin restricciones o de Tipo 0 Máquina de Turing Sensible al contexto o de Tipo 1 Autómata linealmente acotado Libre de contexto o de Tipo 2 Autómata a pila Regular o de Tipo 3 Autómata Finito UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

¿Y en el resto del curso? • En los Temas 2 y 3 trataremos

¿Y en el resto del curso? • En los Temas 2 y 3 trataremos conceptos básicos (como lenguajes y gramáticas formales) que serán empleados en el resto de los temas. • En el Tema 4 estudiaremos las gramáticas de tipo 3 y las máquinas reconocedoras de los lenguajes de tipo 3. • En los Temas 5 y 6 se describen las expresiones regulares, mecanismos útiles para representar lenguajes regulares y sus propiedades. • En los Temas 7, 8 y 9 están dedicados a las gramáticas de tipo 2, sus máquinas reconocedoras y las propiedades de este tipo de lenguajes. • En el tema 10 se estudian las gramáticas de tipo 0 y tipo 1 y las máquinas de Turing. UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002

¿Y al final del curso qué? • Construir autómatas para modelar sistemas. • Desarrollar

¿Y al final del curso qué? • Construir autómatas para modelar sistemas. • Desarrollar gramáticas para generar un lenguaje dado. • Construir máquinas para reconocer sentencias de un determinado lenguaje. • Comprobar el tipo de un lenguaje dado. UNIVERSIDAD DE CASTILLA-LA MANCHA © J. J. Castro-Schez, 2001/2002