Está en la página 1de 19

Mquinas Secuenciales, Autmatas y Lenguajes Formales Tema 3: Gramticas formales y autmatas

Holger Billhardt holger.billhardt@urjc.es

Sumario:
!!

Bloque 1: Conceptos bsicos


1.! 2.! 3.!

Introduccin Lenguajes Formales Gramticas Formales


1.! 2.!

Concepto de Gramtica Formal Tipos de Gramticas

4.!

Autmatas

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

Concepto de Gramtica Formal


!!

Hemos visto que lenguajes son subconjuntos de las palabras sobre un alfabeto (L!W(")). Cmo se puede definir las palabras que pertenecen a un determinado lenguaje?
"!

!!

Enumerando el conjunto de palabras


!!

algunos lenguajes son infinitos? a veces complicado y demasiado impreciso

"!

Descripcin informal de las palabras:


!!

"!

Descripcin formal, basada en los operadores de palabras:


!!

no suelen ser suficientes para especificar todos los lenguajes


Mquinas Secuenciales, Autmatas y Lenguajes Formales 3

Universidad Rey Juan Carlos

Concepto de Gramtica Formal


!!

Necesitamos un formalismo para definir los lenguajes (las palabras que pertenecen a un lenguaje).
"!

Una posibilidad - Gramticas formales:


!!

!!

Una gramtica describe de forma inequvoca la estructura de las palabras de un lenguaje Proporcionan un mecanismo para generar todas las palabras que pertenecen a un determinado lenguaje (tambin se llaman gramticas generadoras)

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

Concepto de Gramtica Formal


"!

Definicin (Gramtica formal):


Se denomina gramtica formal a una cudrupla: G=(#N, #T, S, P), dnde:
!!

#N es un alfabeto de smbolos no terminales o variables (usamos normalmente letras maysucales del alfabeto A,B,!) #T es un alfabeto de smbolos terminales #N $ #T = % ; llamaremos # al conjunto #N & #T S'#N es el axioma o smbolo inicial P es un conjunto de pares ordenados (xAy,v), tales que: x,y,v ' (#N & #T)* y A'#N, denominados reglas de produccin o reglas de derivacin y denotados mediante xAy::=v o bien xAy(v

!!

!! !!

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

Concepto de Gramtica Formal


!!

Dada la gramtica G = ("N,"T,S,P):


"! "!

"!

"!

La letra griega " se usa para denotar a la unin de "N con "T , es decir, "="N "T. Dada una regla xAy ::= v de P, su parte izquierda, xAy, se denomina cabeza de la regla, mientras que su parte derecha, v, se denomina cuerpo de la regla. Si el conjunto P contiene dos o ms reglas con misma cabeza, esas reglas se pueden sustituir por una nica regla con la cabeza dada donde el cuerpo contiene todas las partes derechas, separadas entre ellas por rayas verticales: [xAy ::= v1,...,xAy ::= vk] xAy ::= v1|...|vk La abreviatura anterior, junto con el uso del smbolo ::= en las reglas en lugar de #, forma parte de la notacin conocida como BNF (Backus Normal Form o Backus Naur Form).

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

Concepto de Gramtica Formal


"!

Ejemplos:
G1=({S, A}, {a, b}, S, {S::=Ab, A::=aAb, A::=)}) G2=({S}, {1}, S, {S::=1|)})

G=(#N, #T, S, P) no es una gramtica si: 1.! S*#N 2.! u::=v ' P con u ' #T* 3.! + a: a ' #T , a'#N

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

Concepto de Gramtica Formal


Las reglas de las gramticas se usan para transformar unas palabras en otras: !! cualquier palabra que contenga la cabeza de una regla se puede transformar sustituyendo la cabeza de la regla por su cuerpo Ejemplo:
!!

Aplicando la regla a::=bb a la palabra aabbaa se puede obtener las palabras nuevas:
"! "! "!

bbabbaa abbbbaa !

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

Concepto de Gramtica Formal


"!

Definicin (Derivacin directa):


!!

!!

Una regla xAy ::= v de una gramtica G = ("N,"T,S,P) se puede aplicar sobre cualquier palabra de la forma u = u1xAyu2, con u1, u2 ", dando lugar a la palabra w = u1vu2. Se dice que la palabra w as obtenida es una derivacin directa de u y se escribe u # w.

"!

Ejemplo:
!!

G = ({S},{0,1},S,{S ::= $|0S1; 0S::=$}) y u = 0SS


"!

"!

cules de las siguientes palabras son derivaciones directas de u? S, 0, 0S, 01, 00S1S, $, !

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

Concepto de Gramtica Formal


Las derivaciones directas se pueden encadenar usando las reglas en el cualquier orden de forma iterativa:
"!

Definicin (Derivacin):
!!

!!

Dada una gramtica, una derivacin es una secuencia de cero o ms derivaciones directas: w1 # w2 # . . . # wn. Se denota w1 # wn. La longitud de una derivacin es el nmero de derivaciones directas de la secuencia.

"!

Propiedades de la derivacin
!! !! !!

Reflexiva: - x ' "* : x (*x Transitiva: - x, y, z ' "* : si x (* y e y (* z, entonces x (* z Simtrica: no

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

10

Concepto de Gramtica Formal


"!

Ejemplo:
!!

G = ({S},{0,1},S,{S ::= $|0S1; 0S::=$})


"! "! "! "! "!

0SS # 0SS (longitud cero) S # $ (longitud 1) 0SS # 0S # 0 (longitud 2) S # 0S1 # 1 (longitud 2) S # 0S1 # 00S11 # 000S111# 000111 (longitud 4)

"!

Para definir las palabras generadas por una gramtica nos centramos en las palabras que se pueden derivar a partir del smbolo inicial.
Mquinas Secuenciales, Autmatas y Lenguajes Formales

Universidad Rey Juan Carlos

11

Concepto de Gramtica Formal


"!

Definicin (lenguaje generado por una gramtica):


!!

!!

Dada una gramtica G=(#N, #T, S, P), el lenguaje reconocido o generado por G est formado por el siguiente conjunto: L(G)={u | S(*u y u ' #T*} Los elementos de L(G) se denominan sentencias o palabras del lenguaje

"!

Es decir, el lenguaje generado por una gramtica consiste de todas las palabras:
!! !!

que se pueden derivar a partir del axioma o smbolo inicial y que estn compuestos nicamente por smbolos terminales (de #T)
Mquinas Secuenciales, Autmatas y Lenguajes Formales

Universidad Rey Juan Carlos

12

Concepto de Gramtica Formal (l.asociado)


"!

Ejemplos:
G1=({S, A), {a, b}, S, P) con P={ S::=Ab, A::=aAb | ) }

. L(G1)={anbn+1 | n/0}

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

13

Concepto de Gramtica Formal


!!

Ejemplos:
Podramos usar producciones para representar oraciones en Castellano: <oracin>::=<sujeto> <predicado>. <sujeto>::=<frase_nominal> <frase_nominal>::=<grupo_nominal> | <grupo_nominal> <calificativo> <grupo_nominal>::=el gato|la pelota|! <calificativo>::=pequeo|grande|! <predicado >::=bota|juega ... Se podran generar sentencias de la siguiente forma: el gato pequeo juega. o el gato grande bota.

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

14

Concepto de Gramtica Formal


!!

Ejemplos:
"!

"!

"!

"!

"!

"!

G1=({S,A}, {a,b},S,P) con P={S::=Ab, A::=aAb|)} . L(G1)={anbn+1|n/0} G2=({S,A}, {a,b},S,P) con P={S::=Ab, A::=aAb} . L(G2)? G3=({S,A}, {a,b},S,P) con P={S::=Ab, A::=aAb|aS} . L(G3)? G4=({S,A}, {a,b},S,P) con P={S::=Ab, A::=ab|a} . L(G4)? G5=({A,B,C,D,E,S},{a},S,P) con P={S::=ABaC, Ba::=aaB, BC::=DC|E, aD::=Da, AD::=AB, aE::=Ea, AE::=) } . L(G5)? G6=({S,A}, {a,b},S,P) con P={S::=Ab, A::=Aab|a} . L(G6)?

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

15

Concepto de Gramtica Formal


!!

Ejemplos
"!

Definicin de la instruccin if de algn lenguaje de programacin:

if_statement ::= if condition then sequence_of_statement end if;| if condition then sequence_of_statement else sequence_of_statements end if; sequence_of_statement ::= SKIP | if_statement | ! condition ::= TRUE | FALSE | ! (smbolos terminales en negrita y variables sin negrita)

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

16

Concepto de Gramtica Formal


!!

Gramticas distintas pueden representar el mismo lenguaje:


"!

Definicin (Gramticas equivalentes):


Dos gramticas G1 y G2 son equivalentes (denotado por G10G2), si generan el mismo lenguaje, es decir, si se verifica L(G1)=L(G2).

"!

Ejemplos:
G7=({S}, {a, b}, S, {S::= aSb | ab }) G8=({A, B, C, E},{a, b}, A, P) con P={A::=aABC | ab; BC::=bb; E::=b} . son G7 y G8 equivalentes?

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

17

Sumario:
!!

Bloque 1: Conceptos bsicos


1.! 2.! 3.!

Introduccin Lenguajes Formales Gramticas Formales


1.! 2.!

Concepto de Gramtica Formal Tipos de Gramticas

4.!

Autmatas

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

18

Tipos de Gramticas (jerarqua de Chomsky)


!!

Comsky defini una jerarqua formada por 4 tipos de gramticas en funcin de restricciones sobre las producciones de lo ms general (tipo 0) a lo ms especfico (tipo 3):
G0 G1 G2 G3

"!

Se verifica: G3 1 G2 1 G1 1 G0
Mquinas Secuenciales, Autmatas y Lenguajes Formales 19

Universidad Rey Juan Carlos

Gramticas de tipo 0
"!

Definicin (Gramticas de tipo 0):


!!

!!

Toda gramtica es G = ("N , "T , S, P) es una gramtica de tipo 0. Los lenguajes generados por gramticas de tipo 0 se conocen como lenguajes sin restricciones o lenguajes recursivamente enumerables.

"!

Ejemplos: !! G1 hasta G8 de los ejemplos anteriores son del tipo 0

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

20

10

Gramticas de tipo 1
"!

Definicin (Gramticas de tipo 1):


!!

!!

Una gramtica G = ("N , "T , S, P) es una gramtica de tipo 1 si todas las reglas de P tienen necesariamente una de las siguientes formas: S ::= $ xAy ::=xvy con x,y ",A"N,v "+ Los lenguajes generados por gramticas de tipo 1 se conocen como lenguajes sensibles al contexto.

"!

Nota:
!!

!!

Toda derivacin directa w1 # w2 producida por una regla del tipo xAy ::= xvy mantiene o aumenta la longitud de la palabra (|w1| % |w2|) Slo S ::= $ puede comprimir una palabra

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

21

Gramticas de tipo 1
"!

Ejemplos:

Cules de las siguientes reglas son de tipo 1? AB::=aCdB ABC::=AC aA::=aCBbb AaBF::=AaCF aBA::=a

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

22

11

Gramticas de tipo 2
"!

Definicin (Gramticas de tipo 2):


!!

!!

Una gramtica G = ("N , "T , S, P) es una gramtica de tipo 2 si todas las reglas de P tienen necesariamente la siguiente forma: A::=v con A"N,v"* Los lenguajes generados por gramticas de tipo 2 se conocen como lenguajes independientes del contexto.

"!

Nota:
Se pueden definir las gramticas del tipo 2 como todas aquellas cuyas reglas tienen una de las siguientes formas: A::=v con A"N,v"+ S::=) siendo S el axioma de la gramtica Con ambas definiciones se puede generar el mismo conjunto de lenguajes.
Mquinas Secuenciales, Autmatas y Lenguajes Formales

Universidad Rey Juan Carlos

23

Gramticas de tipo 2
"!

Ejemplos:

Cules de las siguientes reglas son de tipo 2? AA::=Ab a::=AC A::=aaB A::=) aBA::=a

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

24

12

Gramticas de tipo 3
"!

Definicin (Gramticas de tipo 3):


!! !!

!!

!!

Una gramtica G = ("N , "T , S, P) es una gramtica de tipo 3 si pertenece a una de las dos clases siguientes: gramticas lineales por la izquierda: todas aquellas cuyas reglas tienen una de las siguientes formas: A::=a A::=Va (S, A, V ' #N, a ' #T, y S el axioma) S::=) gramticas lineales por la derecha: todas aquellas cuyas producciones tienen una de las siguientes formas: A::=a A::=aV (S, A, V ' #N, a ' #T, y S el axioma) S::=) Los lenguajes generados por gramticas de tipo 3 se conocen como lenguajes regulares.
Mquinas Secuenciales, Autmatas y Lenguajes Formales 25

Universidad Rey Juan Carlos

Gramticas de tipo 3
"!

Ejemplos:
!! !! !! !!

S::=), S::=a, A::=Ca son del tipo 3 (lineal por la izquierda) S::=), S::=a, A::=aC son del tipo 3 (lineal por la derecha) aA::=aaV, A::=abV, A::=), a::=C no son del tipo 3 Es regular esta gramtica? G9=({A, B, C},{a, b}, A, P) con P={A::=aB, B::=Cb, ...}

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

26

13

Gramticas de tipo 3
"!

Ejemplos:
!!

!!

Lenguaje representado por? G10=({S, B},{0, 1}, S, P) con P={S::=B1 | 1, B::=S0} Lenguaje representado por? G11=({S, B},{0, 1}, S, P) con P={S::=1B | 1, B::=0S}

"!

Las gramticas del tipo 3 tienen 2 posibles representaciones


!!

Es posible demostrar que ambas representaciones son equivalentes, es decir:


"!

Para cada gramtica lineal por la derecha GD existe una gramtica lineal por la izquierda GI tal que L(GD)=L(GI) (y viceversa)

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

27

Jerarqua de Chomsky
Gramtica Reglas Tipo 0 Tipo 1 Tipo 2 xAy ::= v con x,y,v ",A "N Lenguajes recursivamente enumerables o sin restricciones sensibles al contexto o dependientes del contexto independientes del contexto

S ::= $ xAy ::=xvy con x,y ",A"N,v "+ A::=v con A"N,v"* con S, A, V ' #N, a ' #T y S el axioma

A::=a Tipo 3 (izquierda) A::=Va S::=) Tipo 3 (derecha)

Regulares

A::=a A::=aV con S, A, V ' #N, a ' #T S::=) y S el axioma

Existen otras definiciones alternativas, pero equivalentes a estas.


Mquinas Secuenciales, Autmatas y Lenguajes Formales

Universidad Rey Juan Carlos

28

14

Sumario:
!!

Bloque 1: Conceptos bsicos


1.! 2.! 3.! 4.!

Introduccin Lenguajes Formales Gramticas Formales Autmatas


1.!

Concepto de Autmata

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

29

Concepto de Autmata
!!

Un autmata es un modelo abstracto de un dispositivo de computacin capaz de procesar de forma secuencial una informacin de partida (entrada) y producir una informacin de salida.

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

30

15

Concepto de Autmata
!!

Componentes de un autmata:
"! "! "!

"!

Dispositivo de entrada que puede leer una secuencia de smbolos de un alfabeto de forma secuencial Dispositivo de salida mediante el cual el autmata produce una salida Dispositivo de almacenamiento o memoria (opcional) en el cual el autmata puede escribir y leer Unidad de Control que:
!! !!

!!

En cada momento se encuentra en un cierto estado interno Tiene una funcin de transicin que le permite cambiar de estado interno dependiendo de su estado actual, del contenido de su memoria y del smbolo ledo en la entradas En cada cambio de estado puede producir una salida y/o modificar su memoria

Entrada Unidad de Control Memoria


Universidad Rey Juan Carlos Mquinas Secuenciales, Autmatas y Lenguajes Formales 31

Salida

Concepto de Autmata
!!

Los autmatas se diferencian unos de otros dependiendo, fundamentalmente, de: "! El tipo de acceso al dispositivo de entrada. "! La forma en que producen la salida. "! Si tienen o no dispositivo de memoria auxiliar, y, en caso afirmativo, de qu tipo de dispositivo se trata. Existen dos clases de autmatas: "! Autmatas transductores:
!!

!!

Son capaces de producir palabras como salida. Tienen una salida booleana (cierto/falso) que indica si se acepta o no la entrada recibida.
Mquinas Secuenciales, Autmatas y Lenguajes Formales

"!

Autmatas aceptadores o reconocedores:


!!

Universidad Rey Juan Carlos

32

16

Concepto de Autmata
Los autmatas pueden ser deterministas o no deterministas:
!!

Se dice que un autmata es determinista cuando el paso de un estado interno al siguiente siempre est unvocamente determinado por el estado actual, la entrada y la informacin almacenada en la memoria. Se dice que un autmata es no determinista en caso contrario, es decir, cuando para un mismo estado interno, misma entrada y misma informacin en el dispositivo de almacenamiento puedan existir varias posibles transiciones a estados internos distintos.

!!

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

33

Diferentes tipos de autmatas


"!

Autmatas finitos
!!

!!

!!

!!

Son los autmatas ms sencillos. Carecen de dispositivo de almacenamiento auxiliar. Los aceptadores son capaces de reconocer lenguajes regulares (tipo 3). Tienen muchas aplicaciones prcticas: diseo de circuitos, anlisis lxico, reconocimiento de patrones, control industrial, etc. Las mquinas de Mealy y las mquinas de Moore son autmatas finitos transductores que pueden producir como salidas palabras de un alfabeto

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

34

17

Diferentes tipos de autmatas


"!

Autmatas a pila
!!

!!

!!

Cuentan con un dispositivo de almacenamiento de tipo pila (LIFO). Los aceptadores son capaces de reconocer lenguajes independientes del contexto (tipo 2). Su principal aplicacin es la construccin de analizadores sintcticos de lenguajes de programacin.

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

35

Diferentes tipos de autmatas


"!

Mquinas de Turing
!! !! !! !!

!!

Son los autmatas ms complejos. Tienen un dispositivo de almacenamiento infinito. Pueden escribir smbolos de salida en una salida infinita. Los aceptadores son capaces de reconocer lenguajes recursivamente enumerables (tipo 0). Constituyen el pilar fundamental de la teora de la computabilidad: un problema es computable si existe una mquina de Turing capaz de resolverlo.

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

36

18

Autmatas, Gramticas, Lenguajes


La siguiente tabla resume la relacin de los tipos de gramticas, sus lenguajes asociados y sus tipos de autmatas aceptadores correspondientes.
Gram tica Tipo 0 Tipo 1 Lenguajes recursivamente enumerables sensibles al contexto independientes del contexto Autmata Mquina de Turing Autmatas linealmente acotados Autmatas a pila Analizadores sintcticos (lenguajes de programacin, XML) Analizadores lxicos, Reconocimiento de patrones, Procesamiento leng. natural, Anlisis y diseo OO, Control, etc
37

Aplicaciones Teora de la computabilidad, Teora de la complejidad

Tipo 2

Tipo 3 Regulares Autmatas finitos

Universidad Rey Juan Carlos

Mquinas Secuenciales, Autmatas y Lenguajes Formales

19

También podría gustarte