10
INGENIERIA EN SISTEMAS COMPUTACIONALES LENGUAJES AUTOMATAS UNIDAD 1 INTRODUCCION A LOS LENGUAJES AUTOMATAS ISCENRIQUE PONCE RIVERA, MC S501 23-08-2016 NOMBRE DEL ALUMNO: ANEL VERONICA SOSA MEJIA Fecha de entrega: 29/08/2016

investigacion introduccion a los lenguajes y automatas

Embed Size (px)

Citation preview

Page 1: investigacion introduccion a los lenguajes y automatas

INGENIERIA EN SISTEMAS COMPUTACIONALES

LENGUAJES AUTOMATAS

UNIDAD 1

INTRODUCCION A LOS LENGUAJES AUTOMATAS

ISCENRIQUE PONCE RIVERA, MC

S501

23-08-2016

NOMBRE DEL ALUMNO: ANEL VERONICA SOSA MEJIA

Fecha de entrega: 29/08/2016

Page 2: investigacion introduccion a los lenguajes y automatas

Tabla de contenido 1.1. Definiciones. ................................................................................................................................................2

1.2 Un poco de historia.......................................................................................................................................2

1.3. Lenguajes, Gramáticas y Autómata .......................................................................................................5

Autómatas / Máquinas secuenciales .................................................................................................................7

1.5 Lenguajes y Gramáticas ................................................................................................................................8

Ejemplo 1: ....................................................................................................................................................8

Ejemplo 2: ....................................................................................................................................................8

Page 3: investigacion introduccion a los lenguajes y automatas

1.1. Definiciones. Lenguaje: Forma de representar información basada en un conjunto finito de signos o símbolos

Alfabeto: Conjunto de símbolos que forman parte de un lenguaje

Sentencia o palabra o fórmula bien formada: Secuencia de símbolos correcta.

Lenguaje formal: Lenguaje descrito mediante un formalismo matemático

Computar: Procesar información

Modelo de computación: Máquina abstracta que toma como entrada una secuencia de símbolos y los procesa

Dependiendo del modelo, el resultado del cómputo puede ser:

Una secuencia de acciones

Una salida expresada en un cierto lenguaje

Una respuesta de aceptación o rechazo de la entrada

Autómata:

Modelo de computación Maquina de estados

El funcionamiento de la máquina se basa en transiciones de estados

Las transiciones están provocadas por la lectura de los símbolos de entrada Informática:

Ciencia aplicada que abarca el estudio y aplicaciones del tratamiento automático de la información

Informática teórica:

Disciplina que estudia las capacidades de los modelos de computación y sus límites, así como el tipo de

problemas que pueden tratar y la eficiencia con la que pueden ser tratados.

1.2 Un poco de historia

Lógica matemática Friedrich Ludwig Gottlob Frege Nacido en Wismar (Alemania) en 1848Muerto en Bad Kleinen en 1945

Profesor en la Universidad de Jena En 1879 publicó Conceptografía (Begriffsschrift) Desarrollo de la

lógica de primer orden (operadores and, or, not, implicación, para-todo, existe) La notación que utilizaba era

bastante complicada

Lógica matemática Giuseppe Peano Nacido en Spinetta (Italia) en 1858 Muerto en Turín e 1932 Profesor en la Universidad de

Turín y en la Academia Militar Real Matemático y filósofo, propuso la notación actual de la lógica y

estudió los principios de la matemática. Formulario, enciclopedia con todas las fórmulas y teoremas

conocidos en matemáticas

Page 4: investigacion introduccion a los lenguajes y automatas

Lógica matemática Bertrand Russell (1872-1970) Conoce a Peano en el congreso de Filosofía de París (1900) Publica Principia

Mathematica en 1910, 1912, 1913.

Alfred North Whitehead (1861-1947) Profesor en las universidades de Londres, Cambridge y HarvardFue

profesor de Russell y escribió con él los Principia Mathematica

Lógica matemática David Hilbert (1862 – 1943) Profesor en la Universidad de Gottingen El matemático más importante del s. XX.

1. Trabajos en análisis funcional, geometría, fundamentos de física cuántica y de relatividad

general, lógica…

2. Axiomatización de la geometría.

3. Problemas de Hilbert.

4. Publica en 1928 Principios de lógica teórica

5. Problema de la decisión: descubrir un método general para decidir si una fórmula lógica es

verdadera o falsa

Lógica matemática Kurt Gödel (1906 – 1978) Profesor en Viena y en Princeton Publica en 1931 el artículo Sobre proposiciones

formalmente indecidibles de Principia Mathematica y sistemas relacionados

1. Teorema de incompletitud: “En cualquier formalización consistente de las matemáticas que sea lo bastante fuerte para definir el

concepto de números naturales, se puede construir una afirmación que ni se puede demostrar ni se puede

refutar dentro de ese sistema.”

Computabilidad Alan Mathison Turing (1912 – 1954) Estudia en Cambridge y en Princeton (con A. Church) Profesor en

Cambridge y U. Manchester

2. Participa en la ruptura del cifrado de la máquina Enigma Publica en 1936 el artículo Los

números computables, con una aplicación al Entscheidungsproblem. Nacimiento de la

Informática Teórica

3. Inventa las máquinas de Turing

Computabilidad Alonzo Church (1903 – 1995) Profesor en Princeton

1. Desarrolla el cálculo lambda, basado en funciones recursivas. (Base de los lenguajes

funcionales)

2. En 1936 demuestra la existencia de problemas indecidibles para el cálculo lambda.

3. Entre 1938 y 1939 trabaja con A. Turing

4. Tesis de Church-Turing: cualquier modelo computacional existente tiene las mismas

capacidades algorítmicas, o un subconjunto, de las que tiene una máquina de Turing

Computabilidad

Page 5: investigacion introduccion a los lenguajes y automatas

Stephen Kleene (1909 - 1994) Profesor de la U. WisconsinDiscípulo de A. Church. Estudia la teoría de funciones

recursivas.

1. Desarrolla las expresiones regulares

2. Numerosos estudios en Teoría de Autómatas

3. Teoría de autómatas

Claude Elwood Shannon (1916 – 2001) Estudia en la U. Michigan. Profesor en el Instituto de Tecnología de

Massachusetts (MIT)

1. En 1938 publica A Symbolic Analysis of Relay and Switching Circuits. Aplicación de la lógica

matemática a los circuitos electrónicos.

2. En 1948 publica Una Teoría Matemática de la Comunicación. Nacimiento de la Teoría de la

Información

3. En 1956 edita, junto a McCarthy, Automata Studies, sobre máquinas secuenciales y autómatas

finitos.

Teoría de autómatas

Autómatas Finitos Deterministas

1. D. A. Huffman, The synthesis of sequential switching circuits, J. Franklin Inst., vol. 257, (1954)

2. G. H. Mealy, A method for synthesizing sequential circuits, Bell System Technical Journal

vol. 34 (1955)

3. E.F. Moore, Gedanken experiments on sequential machines, en

4. Automata Studies (1956)

Autómatas Finitos No Deterministas

1. M.O. Rabin y D. Scott, Finite automata and their decision problems, IBM J. Research and

Development, vol. 3 (1959)

Lingüística

Noam Chomsky (1928 - ) Profesor Del Massachusetts Institute of Technology (MIT)

2. Conocido por su activismo político Doctorado en 1955 en la U. Harvard con la tesis Estructura

lógica de la teoría lingüística (que no se publicó hasta 1975)

3. En 1957 publica Estructuras sintácticas en el que aparece la clasificación de gramáticas

(Jerarquía de Chomsky)

Teoría de autómatas

Autómatas de Pila

1. G. Oettinger, Automatic syntactic analysis and the pushdown store, Proc. Symposia on

Applied Math. (1961).

2. M.P. Schutzenberger, On context-free languages and pushdown automata, Information and

Page 6: investigacion introduccion a los lenguajes y automatas

Control, vol. 6 (1963)

3. P.C. Fisher, On computability by certain classes of restricted Turing machines, Proc. 4th Annl.

Symposium on Switching Circuit Theory and Logical Design (1963)

4. D.E. Knuth, On the translation of languages from left to right, Information and Control, vol.

8 (1965).

Complejidad computacional

Stephen Arthur Cook (1939 - ) Estudiante en U. Michigan y U. HarvardProfesor en U. Berkeley y U. Toronto

1. En 1971 publica The Complexity of Theorem Proving Procedures, donde define las clases de

problemas P, NP, y NP completos.

1.3. Lenguajes, Gramáticas y Autómata

Desde su nacimiento, la teoría de autómatas ha encontrado aplicación en muy diversos campos. Esto

se debe a que resulta muy natural considerar, tanto los autómatas como las máquinas secuenciales, sistemas

capaces de transmitir (procesar) información.

En definitiva, esto es equiparable a cualquier sistema existente en la naturaleza, que recibe señales de su

entorno, reacciona ante ellas y emite así nuevas señales al ambiente que le rodea

Algunos de los campos donde ha encontrado aplicación la teoría de autómatas son:

• Teoría de la Comunicación

• Teoría de Control

• Lógica de los circuitos secuenciales

• Ordenadores

• Teoría lógica de los sistemas evolutivos y auto-reproductivos

• Reconocimiento de patrones

• Fisiología del sistema nervioso

• Traducción automática de lenguajes

Chomsky clasificá los lenguajes formales de acuerdo a una jerarquía de cuatro niveles, conteniendo cada

uno de todos los siguientes.

1. El lenguaje más general será, pues, de tipo 0, y no posee restricción alguna. Este conjunto

engloba el conjunto de todos los lenguajes posibles.

2. En el segundo nivel aparecen los lenguajes de tipo 1, también llamados lenguajes “sensibles

al contexto”, al permitir que el “papel” de las palabras dependa dela posicionen que

aparezcan(es decir, del contexto).La mayor parte de los lenguajes de ordenador

pertenecen a este tipo.

3. En tercer lugar aparecen los lenguajes de tipo 2, o lenguajes “independientes del contexto”.

En ellas el significado de una palabra es independiente del lugar que ocupa en la frase.

4. Finalmente, los lenguajes de tipo 3, o lenguajes regulares, son los que presentan una

estructura más sencilla.

Page 7: investigacion introduccion a los lenguajes y automatas

Cada uno de estos tipos de máquinas es capaz de resolver problemas cada vez más complicados, hasta llegar

a las máquinas de Turing.

Como descubrió Turing, existen una serie de problemas que no son computacionalmente abordables y que

reciben el nombre de “problemas no enumerables”.

La relación estrecha entre la Teoría de Lenguajes Formales y la Teoría de Autómatas se pone de

manifiesto en este tema. Se establece un isomorfismo entre ambas, estableciendo una conexión entre la

clase de lenguajes generados por ciertos tipos de gramáticas y la clase de lenguajes reconocibles por

ciertas máquinas.

• los lenguajes del tipo 0 con los lenguajes reconocidos por una máquina de Turing,

• los lenguajes de tipo 1 con los Autómatas Linealmente

Acotados

• los lenguajes de tipo 2 con los Autómatas a Pila

• los lenguajes de tipo 3 con los Autómatas Finitos, los Autómatas Probabilísticos y los

Autómatas de Células de McCulloch-Pitts.

Cada uno de estos tipos/máquinas añade restricciones al tipo/máquina del nivel superior.

Gran parte del temario se basará en problemas que tienen que ver con el procesamiento del lenguaje, por

tanto, se repasa la terminología y algunos de los conceptos asociados al proceso de traducción.

Se establecen los términos de lenguaje formal, definidos por reglas preestablecidas, y de lenguaje natural,

no cuentan con reglas gramaticales formales.

Page 8: investigacion introduccion a los lenguajes y automatas

Así, el estudio de los lenguajes se reduce al análisis de la estructura de las frases (Gramática) y del significado

de las mismas (Semántica).A su vez, la Gramática puede analizar las formas que toman las palabras

(Morfología), su combinación para formar frases correctas (Sintaxis), y las propiedades del lenguaje hablado

(Fonética) (única no aplicable a los lenguajes de ordenador).

Para realzar el papel de la gramática en el proceso de traducción se indican los componentes básicos de que

consta compilador para un determinado lenguaje de programación: análisis léxico, análisis sintáctico y

generación de código.

La informática teórica: se ha desarrollado con base a la confluencia de campos en apariencia muy distintos:

Investigación acerca de Fundamentos Matemáticos, Teoría de Máquinas,

Lingüística: Ciencia multidisciplinar que se apoya en que los mismos fenómenos pueden actuar y servir de

fundamento en áreas totalmente desconectadas (aparentemente).

1.4 Autómatas / Máquinas secuencialesUn autómata puede describir de forma formal el funcionamiento de un sistema

Ejemplo: INTERRUPTOR

Un autómata es un modelo abstracto de una computadora digital

• Lee símbolos en la entrada

• Produce símbolos en la salida

• Tiene una unidad de control que puede estar en uno de sus posibles estados internos

• Puede cambiar de los estados internos en función de la entrada

• Puede tener algún tipo de memoria

• Autómatas transductores / generadores / aceptadores

Page 9: investigacion introduccion a los lenguajes y automatas

1.5 Lenguajes y Gramáticas Cualquier comunicación se realiza mediante cadenas de símbolos que corresponden a un lenguaje .Lenguajes

son conjuntos de cadenas de símbolos (palabras, oraciones, textos o frases)

El estudio de los lenguajes se reduce, básicamente, a: Sintaxis: (gramática) define las secuencias de símbolos

que forman cadenas válidas de un lenguaje

Gramática: Descripción formalizada de las oraciones de un lenguaje. Una gramática genera o describe un

lenguaje.

Semántica: significado de las cadenas que componen un lenguaje

Ejemplo 1: Semántica:

A es un número natural.

Diferente sintaxis en diferentes lenguajes: A is a natural number.

A : Natural; 0100000100000001

Ejemplo 2: Sintaxis:

if_statement ::= if condition then sequence_of_statement {elsif condition then sequence_of_statements}

[else sequence_of_statements] end if;

Semántica:

Si se cumple <condition> entonces haz lo que viene definido por

<sequence_of_statements>. En caso contrario ...

Cadena del lenguaje: if Line_Too_Short then raise Layout_Error; elsif Line_Full then New_Line; Put(Item); else

Put(Item); end if;

La Teoría de Lenguajes Formales resultó tener una relación inmediata y directa con la Teoría de Máquinas

Abstractas.

• Se establecieron correspondencias (isomorfismos) entre ellas.

• Se puede describir el funcionamiento de sistemas mediante gramáticas → lenguajes de

programación

Page 10: investigacion introduccion a los lenguajes y automatas

Chomsky clasificó de las gramáticas en diferentes tipos: Lenguajes del mismo tipo tienen propiedades en

común Según el tipo de lenguaje, existen diferentes algoritmos que permiten comprobar la sintaxis de texto

Relación entre autómatas, lenguajes y gramáticas:

Autómatas aceptadores: las entradas válidas corresponden a un lenguaje

¿Cómo se puede formalizar el concepto de realizar un cálculo?

1937 – Alan Mathison Turing: “On computable numbers with an application to the Entscheidungsproblem”

Definición de la Máquina de Turing como dispositivo matemático abstracto de cálculo que introduce el

concepto de “algoritmo”.

• Origen “oficial” de la informática teórica.

• Precursora abstracta de las máquinas de calcular automáticas.

La Máquina de Turing es un modelo abstracto de los ordenadores actuales. Demuestra la existencia de

problemas irresolubles, los que ninguna máquina de Turing (y ningún ordenador) puede resolver o calcular.

(Teoría de la Computabilidad).