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.

Slides:



Advertisements
Presentaciones similares
Compiladores y sus aplicaciones
Advertisements

Introducción ¿Qué es un Algoritmo?
GRAMATICA LIBRE DE CONTEXTO
INSTITUTO TECNOLÓGICO DE MINATITLÁN
Prof. Ing.Maria Rosa Damaso Rios
Gramáticas, lenguajes y reconocedores
¿Compilador ? Es un traductor que convierte un texto escrito en un lenguaje fuente y lo traduce a un programa objeto en código máquina.
TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY
TECNICATURA UNIVERSITARIA EN INFORMATICA
Tema: Decibilidad Integrantes: Ileana Rdguez Soto
¿Cómo hacer para que una máquina comprenda el LN?
Lenguajes de programación
Analizadores Sintácticos Descendentes Predictivos
Unidad 1. Introducción al proceso de compilación.
Teoría de lenguajes y compiladores
Programación de Sistemas
GENERACIONES DE LENGUAJES DE PROGRAMACIÓN
Programación 1 Introducción
Teoría de lenguajes y compiladores
Universidad Autónoma San Francisco
CAPITULO 2 La Representación del Conocimiento
2º curso Ingeniería Técnica en Informática de Sistemas UNED
Pablo Cesar Tapia Catacora
Gestión de Entrada / Salida
La estructura de la oración Sintaxix Luis Villaseñor Pineda Laboratorio de Tecnologías del Lenguaje Coordinación de Ciencias Computacionales, Instituto.
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
PROGRAMACIÓN LÓGICA.
Sistemas Evolutivos Introduccion.
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs
Tema 2 Lenguajes Formales.
2º curso Ingeniería Técnica en Informática de Sistemas UNED
Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas.
Actividad 6. Requisitos del software, referente a la estructura y base de datos. M.C. Juan Carlos Olivares Rojas Syllabus May,
Inteligencia artificial
 Fue en el año 1945 cuando el matemático Jhon Von Neumann, fascinado por las posibilidades del ENIAC, demostró que una computadora podía tener una estructura.
Teoría de lenguajes y compiladores
Procesadores de Lenguajes
COMPUTABILIDAD Y COMPLEJIDAD 1. Conceptos básicos (revisión). 2. Gramáticas independientes de contexto. 3. Propiedades de los lenguajes independientes.
Tema 1. Introducción y Conceptos Básicos
Teoría de lenguajes y compiladores
Análisis Léxico Área Software de Base.
UNIVERSIDAD VALLE DEL MOMBOY FACULTAD DE INGENIERIA ESCUELA DE COMPUTACIÓN CATEDRA: EDUMATICA Br: JENNY CORONADO C.I
AUTÓMATA LINEALMENTE ACOTADO
COMPUTO III Ing. Jimmy Ojeda Arnica.
Autómatas de Pila (Pushdown Automatón)
Programación de Sistemas FEI – 2008
Unidad 1. Introducción a los Compiladores.
Lenguajes de Programación
PROGRAMAS INFORMATICOS
UNIVERSIDAD LATINA (UNILA)
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
Teoría de lenguajes y compiladores
Prof. Flor Narciso Departamento de Computación
ARQUITECTURA DE LOS SISTEMAS DE INFORMACIÓN
ESCUELA NORMAL PARA EDUCADORA ‘’PROFR. SERAFIN CONTRERAZ MANZO’’
Procesadores de Lenguajes
INTRODUCCIÓN LI & MSC OSCAR RAMÍREZ CORTÉS U NIVERSIDAD DE LA H UASTECA V ERACRUZANA L ENGUAJES DE P ROGRAMACIÓN.
I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.
POO U1: INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
Ingeniería de Requerimientos
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
UNIDAD 01. EL MICROPROCESADOR
Unidad 1 Introduccion a los programas Concepto de Programa El término programa (del latín programma, que a su vez proviene de un vocablo griego) tiene.
DESARROLLO DE SOFTWARE Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el que tiene el problema en su.
REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACION SUPERIOR UNIVERSIDAD VALLE DEL MOMBOY CARVAJAL EDO. TRUJILLO ENERO 2014.
República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Superior Universidad Valle del Momboy Carvajal, Trujillo Alumnas Luzmila.
Fundamentos de Programación Unidad I Conceptos Básicos.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
Transcripción de la presentación:

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 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 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 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 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 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 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 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 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 off on 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 off on Comienzo UNIVERSIDAD DE CASTILLA-LA MANCHA © J.J. Castro-Schez, 2001/2002

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 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 Tipo 0 Tipo 1 Tipo 2 Tipo 3 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 Tipo 2 Tipo 3 UNIVERSIDAD DE CASTILLA-LA MANCHA © J.J. Castro-Schez, 2001/2002

Tipos de Lenguajes Tipo 0 Tipo 1 Tipo 2 Tipo 3 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 Tipo 2 Tipo 3 UNIVERSIDAD DE CASTILLA-LA MANCHA © J.J. Castro-Schez, 2001/2002

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

Teoría de Autómatas - Lenguajes Formales (Máquinas abstractas - Gramáticas Formales) 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 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 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