Lenguajes y Expresiones Regulares

  • View
    7

  • Download
    2

Embed Size (px)

DESCRIPTION

Introduccion de Automatas y Lenguajes Formales

Text of Lenguajes y Expresiones Regulares

  • AUTOMATAS Y LENGUAJES FORMALES

  • INTRODUCCIN Y CONCEPTOS

    PRELIMINARES

  • ANTECEDENTESMatemticas:

    Fundamentos de la lgica matemtica

    Biologa: Redes Neuronales Artificiales

    Ingeniera elctrica: Teora de la conmutacin

    Lingstica: Terica de las gramticas

  • QUE ES?

    La teora de los autmatas y lenguajes formales estudia las propiedades de los modelos matemticos de la computacin.

    La teora de autmatas estudia las mquinas o dispositivos abstractos con capacidad de computacin

  • Jerarqua de Chomsky

    Lenguajes Formales Autmatas

    No enumerables

    Recursivamente enumerables Mquina de Turing

    Sensibles al contexto Autmata Lineal Acotado

    Libres de contexto Autmata de Pila

    Regulares Autmata Finito

  • APLICACIONES

    Compiladores

    Procesadores de texto

    Motores de bsqueda

    Diseo de hardware

    Diseo de lenguajes de programacin

  • Teora de conjuntos

    El fundamento ms importante para el estudio de los lenguajes y autmatas es la Teora de conjuntos.

    Cantor G, Formulo la teora de conjuntos

    Frege G, demostr que cualquier enunciado de las matemticas puede expresarse en la teora de conjuntos

    Russel B, Formulo la paradoja de Russel (demuestra que la teora original de conjuntos formulada por Cantor y Frege es contradictoria.)

  • ConjuntoUn conjunto es un grupo de objetos representado como una unidad

    Elemento

    Los objetos pertenecientes a un conjunto son llamados elementos o miembros.

  • Expresin de conjuntosLos conjuntos pueden expresarse de dos maneras bsicamente:

    En extensin: Donde se citan explcitamente cada uno de sus elementos.

    Ejemplo: {1, 3, 5}

    En intensin: dando una descripcin precisa de los elementos que forman parte del conjunto, en vez de citarlos explcitamente

    Ejemplo: {i N| impar(i), i < 6}

  • Membresa a un conjuntoSe utilizan los smbolos y para denotar membresa o no membresa a un conjunto.

    Cuando un elemento pertenece a un conjunto, se escribe el smbolo entre el elemento y el conjunto. Cuando un elemento no pertenece a un conjunto, se escribe el smbolo entre el elemento y el conjunto.

    Ejemplo:

    6 {8, 12, 6, 20} y 3 {8, 12, 6, 20}

  • SubconjuntoTeniendo en cuenta los conjuntos A y B se dice que el conjunto B es subconjunto del conjunto A si B est contenido dentro de A, es decir si todo elemento que es miembro de B tambin es miembro de A. Denotado por A B. Recprocamente, se dice que el conjunto A es un superconjunto de B cuando B es un subconjunto de A.

    Se dice que A es un subconjunto propio de B denotado por A B si A es subconjunto de B y no es igual a B

  • Conjunto potenciaEl conjunto potencia de un conjunto dado es otro conjunto formado por todos los subconjuntos del mismo.

    Ejemplo: el conjunto potencia de A = {1, 2, 3} es:

    { {1}, {2}, {3}, {1, 2}, {2, 3}, {1, 3}, {1, 2, 3} }

    El conjunto potencia de A tambin se denomina conjunto de las partes de A, o conjunto de partes de A se denota por P(A) o 2A.

  • MulticonjuntoLos multiconjuntos son colecciones donde se permite la aparicin repetida de los elementos sin importar su orden. Se debe indicar cuntas veces el elemento es miembro del conjunto.

    Ejemplo:

    Multiconjunto { c, c, c, d, d, e },

    Las multiplicidades de los miembros c, d, y e son 3, 2, y 1, respectivamente.

    Para evitar confusin debiera escribirse: < c, c, c, d, d, e >1

  • Conjunto infinitoUn conjunto infinito es un conjunto que contiene un nmero infinito de elementos.

    Ejemplo:

    Los nmeros enteros Z = {..., -3, -2, -1, 0, 1, 2, 3, ...} forman un conjunto infinito y numerable.

    Los puntos en una recta, representados por un nmero real, forman un conjunto infinito y no numerable

  • Conjunto vacoUn conjunto con cero elementos se denomina conjunto vaco y se denota por

    Singleton

    (Instancia nica). El conjunto con un solo elemento se denomina singleton

  • Cardinalidad

    La cardinalidad de un conjunto es el nmero de elementos

    que posee ese conjunto.

    El smbolo que representa la cardinalidad de un

    conjunto A es n(A), card (A), #A o |A|.

    Ejemplo:

    A = {-3, 0, 1, 2, 3,} tiene cinco elementos por tanto se tiene

    que |A| = 5

  • Notacin Inductiva de Conjuntos En ocasiones los conjuntos se escriben de acuerdo con una regla. Se escribe:

    {n | regla acerca de n}

    De modo que:

    {n | n = m2 para toda m N} es el conjunto de los cuadrados perfectos

  • SecuenciasUna secuencia es una lista de objetos puestos en algn orden. Usualmente se denota a una secuencia por la lista de estos objetos entre parntesis.

    Ejemplo: (-3, 0, 1, 2, 3)

    El orden no es importante en los conjuntos pero si en las secuencias de modo que (-3, 0, 1, 2, 3) (2, 0, 1, -3, 3)

    Igual pasa con las repeticiones, en los conjuntos no es tomada en cuenta pero en las secuencias si, de modo que (-3, 0, 1, 2, 3) ((-3, 0, 1, 1, 1 2, 3)

  • TuplasUna tupla es una lista ordenada de elementos.

    Una n-tupla es una secuencia (o lista ordenada) de n elementos, siendo n un nmero natural (entero no-negativo). La nica 0-tupla es la secuencia vaca. Una n-tupla se define inductivamente desde la construccin de un par ordenado. Las tuplas suelen anotarse listando sus elementos entre parntesis "( )", separados por comas.

    Ejemplo:

    (2, 7, 4, 1, 7) denota una 5-tupla.

  • FuncinUna funcin es un objeto que establece una relacin entrada salida. Una funcin toma una entrada y genera una salida. En toda funcin la misma entrada siempre produce la misma salida.

    Si f es una funcin cuyo valor de salida es x3 cuando su valor de entrada es x se escribe,

    f(x) = x3

    Una funcin se conoce tambin como mapeo y si, f(x) = x3 se dice que f mapea x a x3

  • Argumentos de una funcin

    Cuando el dominio de una funcin f es A1 x A2 x A3 . x Ak para algunos conjuntos A1, A2 , A3 . , Ak la entrada de f es una K-tupla (a1, a2 , a3 . , ak y se dice que ai son los argumentos de la funcin

    Aridad de una funcin

    Una funcin con K elementos f es llamada funcin K-aria y K es llamada aridad de la funcin. Si K es 1, f tiene un solo argumento y f es llamada funcin unaria si K es 2, f es una funcin binaria

  • Relacin

    Un predicado cuyo dominio es el conjunto de las K-tuplas A1 x A2 x A3 . x Ak es llamado relacin k-aria. Un caso comn, la relacin 2-aria, es llamada relacin binaria. Por lo general, se emplea la notacin infija para expresar enunciados matemticos que incluyen relaciones binarias

  • Relacin de equivalencia

    Una relacin binaria es una relacin de equivalencia si R satisface tres condiciones:

    1. R es reflexiva si para toda x, xRx

    2. R es simtrica si para toda x y y, xRy y si solo si yRx; y

    3. R es transitiva si para toda x, y y z, xRy y yRz implica que xRz

  • LENGUAJES Y EXPRESIONES REGULARES

  • AlfabetoUn alfabeto es cualquier conjunto finito, no vaco. Los miembros de un alfabeto son llamados smbolos del alfabeto.

    Es usual utilizar letras griegas maysculas como y para denotar un alfabeto.

    Ejemplo:

    {0, 1},

    {a, b, c},

    {0, 11},

    {(0, 0), (0, 1), (1, 0), (1, 1)}.

  • StringUn String sobre un alfabeto es una secuencia finita de smbolos de un alfabeto, usualmente escritos uno seguido de otros sin ser separados por comas.

    Ejemplo: "abc, invierno, 123456

    Longitud String

    Si es un string sobre , la longitud de , denota por | |, es el nmero de smbolos que este contiene.

    Ejemplo: "abc = longitud |3|, invierno longitud |8|

  • String vacioEl string de longitud cero es llamado String vaco y se denota por

    Notacin para String

    Si tiene longitud n , puede escribirse = 1, 2, 3, .., n donde cada i

  • Reversa de un String

    La reversa de , denotado por R, es el string que se obtiene al escribir en el orden opuesto.

    Substring

    El string z es un substring de si z aparece consecutivamente dentro de

  • LenguajeUn lenguaje es un conjunto de String

    Palabra o cadena

    Es una secuencia de smbolos del alfabeto, es decir, s = a1a2a3... an, donde ai .

    Por lo general se utilizan las primeras letras del alfabeto, a, b, c, d, e, para denotar smbolos del alfabeto y las ltimas letras, s, t, u, v, w, x, y, z, para denotar palabras.

  • Longitud de una palabra

    Es el nmero de smbolos en s. Se denota por | s

    Palabra nula o vaca

    Es la palabra de longitud cero. Algunos autores utilizan para denotarla

  • Operaciones regulares

    Las operaciones regulares se emplean en el estudio de las propiedades de los lenguajes regulares

    Unin

    Concatenacin

    Estrella

  • UninSean A y B lenguajes. La operacin regular Unin se define como:

    A B = {x|x A x B}

    Ejemplo: A= { 1, 2, 3} y B = { 3, 4}

    A B = {1, 2, 3, 4}

    Observacin

    La unin es el lenguaje que se obtiene al combinar todos los string de A y B en un solo lenguaje

  • ConcatenacinSean A y B lenguajes. La operacin regular concatenacin se define como:

    A B = {xy|x A y B}

    Observacin

    La concatenacin yuxtapone un string de B despus de un string de A en todas las formas posibles para obtener los string del nuevo lenguaje

  • Estrella de KleeneSean A y B lenguajes. La operacin regular estrella se define como:

    A* = {x1 x2 x3. xk |k 0, A}

    Observacin

    La estrella yuxtapone cualquier nmero de strings de A, uno despus de otro, para obtener los string del nuevo lenguaj