Anda di halaman 1dari 51

Autómatas y

Lenguajes Formales

1. Lenguajes Formales

Dr. Ricardo Pérez Aguila

Universidad Tecnológica de la Mixteca


1.1 Conceptos Básicos
 Definición:
 Un alfabeto es un conjunto finito no vacío de
símbolos. Se le denota por Σ.

 Definición:
 Un lenguaje L sobre un alfabeto Σ es un
conjunto de cadenas finitas formadas por
elementos de Σ. Las cadenas en un lenguaje son
llamadas también sentencias.
Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.1 Conceptos Básicos
 Ejemplo:
 Sea Σ = {0,1}
 Dos lenguajes sobre Σ podrían ser:
 L1 = {0, 01, 110}
 L2 = {c: c es una cadena con n 0’s y n 1’s, n ≥ 1}
= {01, 0011, 010101, 0000011111, …}
 De hecho:
 Card(L1) = 3
 Card(L2) = ∞

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
 Definición:
 Sean σ = x1x2x3…xn y τ = y1y2y3…ym cadenas. La
concatenación de σ y τ, denotada por στ, es la cadena
στ = x1x2x3…xny1y2y3…ym

 Ejemplo:
 Sean σ = 01011 y τ = 001 entonces
 στ = 01011001
 τσ = 00101011

 Propiedad: στ ≠ τσ
Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.1 Conceptos Básicos
 Definición:
 Sea x un símbolo. xn denota a la cadena
xxx
 x
...
n

 Ejemplo:
 α5 = ααααα

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos

 Definición:
 La longitud de una cadena σ es el número de
símbolos que forman a σ.

 Ejemplo:
 La longitud de la cadena σ = abc3628 es 7.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos

 Definición:
 La cadena vacía es aquella cuya longitud es
cero (no tiene símbolos) y se le denota por λ.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
 Propiedad:

 Sea σ una cadena. Entonces:

σλ = λσ = σ

 Sea x un símbolo. Entonces:

x0 = λ
Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.1 Conceptos Básicos
 Definición:

 Sea Σ un alfabeto.

 El lenguaje formado por todas las posibles cadenas con símbolos


tomados de Σ, incluyendo a la cadena vacía, se le denota por Σ*.

 El lenguaje formado por todas las posibles cadenas con símbolos


tomados de Σ, excluyendo a la cadena vacía, se le denota por Σ+.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
 Definición:

 Una gramática G se compone de cuatro objetos:

 1) Un alfabeto Σ cuyos elementos son llamados símbolos


terminales. El lenguaje de la gramática son cadenas formadas
por símbolos en Σ.

 2) Un conjunto finito no vacío de símbolos N tal que N ∩ Σ = ∅.


Los elementos de N son llamados símbolos no terminales o
variables.

 3) Un símbolo S ∈ N será llamado símbolo inicial.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
 4) Un conjunto P cuyos elementos serán llamados producciones, reglas de
producción o reglas de sustitución. Una producción es una expresión de la forma

A → x1x2…xn

tal que A es un símbolo no terminal y x1x2…xn es una cadena finita de terminales


o no terminales, es decir, xi ∈ Σ ∪ N, i = 1, 2, …, n.

También se aceptan producciones de la forma

A→λ

 Una gramática G es entonces denotada como

G = {Σ, N, S, P}
Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.1 Conceptos Básicos
 Ejemplo:
 Sea G1 = {Σ, N, S, P} la gramática dada por:
 Σ = {a, b, c}
 N = {S, A, B, C}
 Símbolo inicial: S
 P se forma por las producciones:
 S → AaB
 S→B
 A → aB
 A→a
 B → bC
 C → ac
 C→λ

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
 Definición:
 Sea G = {Σ, N, S, P} una gramática. Una
sentencia de G es cualquier cadena x1x2…xn de
símbolos tal que xi ∈ Σ ∪ N, i = 1, 2, …, n. Una
sentencia puede ser también la cadena vacía.

 Ejemplo:
 Las siguientes son sentencias de la gramática G1:
 AaB, λ, AABBcc, etc.
Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.1 Conceptos Básicos
 Definición:
 Sea G = {Σ, N, S, P} una gramática. Sea σ una sentencia de la forma
σ = γ1Aγ2 donde γ1 y γ2 son también sentencias y A es un símbolo no
terminal. Supóngase que la producción
A → x1x2…xn

está contenida en P. Sea τ la sentencia que se obtiene al reemplazar A


por x1x2…xn en σ, es decir
τ = γ1x1x2…xnγ2

Se dice entonces que τ se deriva directamente de σ (o bien que σ


deriva directamente a τ) al usar la producción A → x1x2…xn y se denota
por
σ ⇒ τ

A→ x1 x2 ... xn
O bien σ ⇒τ
Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.1 Conceptos Básicos
 Ejemplo:
 Considérese la gramática G1.
 Sea la sentencia σ1 = aBabC.
 Sea la producción B → bC.
 Entonces:

σ 1 = aBabC ⇒ abCabC

B →bC

 Es decir abCabC se deriva directamente de σ1 = aBabC usando


la producción B → bC.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos

 Ahora considérese la cadena σ2 = aaCba


y la producción C → λ. Entonces se tiene
la derivación directa

σ 2 = aaCba ⇒ aaba

C →λ

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
 Definición:
 Sean σ1 y σ2 dos sentencias de una gramática G.
Supóngase que existe una sucesión de sentencias τ1, τ2,
τ3, …, τn tal que

σ1 ⇒ τ1 ⇒ τ2 ⇒ τ3 ⇒ … ⇒ τn ⇒ σ2

Se dice entonces que σ1 deriva a σ2 (o bien que σ2 es


derivada de σ1) y se denota por

σ1 ⇒* σ2
Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.1 Conceptos Básicos
 Ejemplo:
 Sea σ = S una sentencia de la gramática G1.
Entonces:

σ = S ⇒ AaB ⇒ aaB ⇒ aabC


↑ ↑ ↑
S → AaB A→ a B →bC

 Por lo tanto:
σ ⇒* aabC
Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.1 Conceptos Básicos
 Definición:

 Sea G = {Σ, N, S, P} una gramática. El lenguaje generado por G,


denotado por L(G), se define como el conjunto de cadenas:

L(G) = {σ: σ ∈ Σ*, S ⇒* σ}

Los elementos de L(G) son llamados sentencias de L(G).

 L(G) contiene cadenas formadas por símbolos terminales tales que pueden ser derivadas
a partir del símbolo inicial S y las producciones en P.

 λ puede o no estar en L(G), ello depende de las producciones disponibles en G.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
 Ejemplo:
 Demostrar que las sentencias σ1 = b, σ2 = aabac, σ3 = bac y
σ4 = cba pertenecen a L(G1).
S ⇒ B ⇒ bC ⇒ b = σ 1 ∴ S ⇒ *σ 1 , σ 1 ∈ L(G1 )
↑ ↑ ↑
S →B B →bC C →λ

S ⇒ AaB ⇒ aaB ⇒ aabC ⇒ aabac = σ 2 ∴ S ⇒ *σ 2 , σ 2 ∈ L(G1 )


↑ ↑ ↑ ↑
S → AaB A→ a B →bC C → ac

S ⇒ B ⇒ bC ⇒ bac = σ 3 ∴ S ⇒ *σ 3 , σ 3 ∈ L(G1 )
↑ ↑ ↑
S →B B →bC C → ac

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos

 σ4 ∉ L(G1) ya que no existe producción


en P tal que derive una sentencia que
inicie con el símbolo terminal c.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
 Definición:
 Sea la gramática G0 dada por:
 Σ = {a, +, *, (, )}
 N = {E, T, F}
 Símbolo Inicial: E
 P tiene las producciones:
 E→E+T
 E→T
 T→T*F
 T→F
 F → (E)
 F→a

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
 L(G0) consiste de todas las expresiones algebraicas correctas que se
pueden formar con los símbolos a, +, *, ( y ).
 Ejemplo:
 Demostrar que (a + a) * a ∈ L(G0).

E ⇒ T ⇒ T * F ⇒ T * a ⇒ F * a ⇒ (E) * a ⇒ (E + T ) * a
↑ ↑ ↑ ↑ ↑ ↑
E →T T →T *F F →a T →F F →( E ) E → E +T

⇒ ( E + F ) * a ⇒ ( E + a ) * a ⇒ (T + a ) * a ⇒ ( F + a ) * a
↑ ↑ ↑ ↑
T →F F →a E →T T →F

⇒ (a + a) * a

F →a

∴ E ⇒ * ( a + a ) * a, ( a + a ) * a ∈ L(G0 )
Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.1 Conceptos Básicos
 Ejemplo:
 ¿La cadena
(a + a) * ( a +
está en L(G0)?
 Solo existe una producción que involucra al símbolo terminal +:
E→E+T
 No existe una producción que involucre a la cadena vacía λ.
 Entonces λ no puede ser derivada a partir de T.
 Por lo tanto (a + a) * ( a ∉ L(G0).

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
 Definición:
 Sea G una gramática. Los elementos en Σ ∪ N serán
llamados símbolos gramaticales. Si en P existen
producciones
A → α1
A → α2

A → αk
Entonces éstas también podrán ser enunciadas como
A → α1 | α2 | … | αk

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
 Ejemplo:
 Sea G2 la gramática dada por:
 Σ = {a, b}
 N = {S, B, C}
 Símbolo inicial: S
 Producciones en P:
 S → aBa
 B → Sb | bCC
 C → abb

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
 Ejemplo:
 Demostrar que aababbabbaba ∈ L(G2).

S ⇒ aBa ⇒ aSba ⇒ aaBaba ⇒ aabCCaba


↑ ↑ ↑ ↑
S → aBa B → Sb S → aBa B →bCC

⇒ aababbCaba ⇒ aababbabbaba
↑ ↑
C → abb C → abb

∴ aababbabbaba ∈ L(G2 )
Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.1 Conceptos Básicos
 Definición:
 Sea G una gramática. Un árbol de derivación para una
sentencia σ ∈ L(G) se construye de la siguiente manera:
 1) El nodo raíz estará dado por el símbolo inicial.
 2) Si A es un símbolo no terminal que es reemplazado por una
sentencia de acuerdo a la producción
A → x1x2…xn
entonces el nodo A tendrá por hijos en el árbol a los nodos
x1, x2, …, xn (en ese orden).
 3) Las hojas del árbol corresponden siempre a símbolos
terminales.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
S

 Ejemplo:
a B a

 La cadena S b

aababbabbaba ∈ L(G2).
a B a
 Se tiene el siguiente
árbol de derivación:
b C C

a b b a b b

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.1 Conceptos Básicos
E

 Ejemplo:
T * F
 Demostrar mediante un
árbol de derivación que
(a + a) * a ∈ L(G0). F a

( E )
 Todos los nodos hoja
corresponden a símbolos E + T
terminales.
T F
 ∴(a + a) * a ∈ L(G0)
F a

Dr. Ricardo Pérez Aguila a Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas
 Definición:
 Gramática Tipo 0 o Gramática No Restringida:
 Sus producciones tienen la forma
u→v
donde u y v son cadenas formadas por símbolos
terminales y/o no terminales tal que u ≠ λ.

 Las producciones en una gramática no restringida reemplazan una cadena por


otra cadena.

 También es posible que al reemplazar una cadena símbolos terminales sean


también reemplazados.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas
 Ejemplo:
 Sea G3 la gramática tipo 0 dada por:
 Σ = {a, d, h, i, l, o, s}
 N = {S, X, Y, Z, W}
 Símbolo Inicial: S
 Producciones:
 S → XY
 X → Zho
 Y → laW
 Zho → adi
 laW → os

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas

 Ejemplo:
 Demostrar que la cadena adios ∈ L(G3).

S ⇒ XY ⇒ ZhoY ⇒ ZholaW ⇒ adilaW ⇒ adios


↑ ↑ ↑ ↑ ↑
S → XY X → Zho Y →laW Zho → adi laW → os

∴ adios ∈ L(G3 )

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas

 Definición:

 Sea G una gramática tipo 0. L(G) es llamado


entonces Lenguaje Tipo 0.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas
 Definición:
 Gramática Tipo 1 o Gramática Sensible al Contexto:
 Sus producciones tienen la forma
αAβ → ασβ
donde A es un símbolo no terminal, σ ≠ λ es una cadena formada
por terminales y/o no terminales y α, β ∈ (Σ∪N)*.

 En una gramática tipo 1, un símbolo no terminal A puede ser reemplazado por σ


siempre y cuando a A le preceda α y le suceda β:
 El reemplazo de A depende del contexto de α y β.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas
 Ejemplo:
 Sea G4 la gramática dada por:
 Σ = {a, b, c}
 N = {S, B, C, H}
 Símbolo Inicial: S
 Producciones:
 S → aSBC
 S → aBC
 CB → HB
 HB → HC
 HC → BC
 aB → ab
 bB → bb
 bC → bc
 cC → cc
 ¿G4 es una gramática tipo 1?
Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.2 Tipos de Gramáticas
 Las producciones de G4 pueden ser reescritas como:
 λSλ → λaSBCλ
 λSλ → λaBCλ
 λCB → λHB
 HBλ → HCλ
 λHC → λBC
 aBλ → abλ
 bBλ → bbλ
 bCλ → bcλ
 cCλ → ccλ
 Por lo tanto G4 es una gramática tipo 1.
Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.2 Tipos de Gramáticas
 Ejemplo:
 Demostrar que aabbcc ∈ L(G4).
S ⇒ aSBC ⇒ aaBCBC ⇒ aabCBC ⇒ aabHBC
↑ ↑ ↑ ↑
S → aSBC S → aBC aB → ab CB → HB

⇒ aabHCC ⇒ aabBCC ⇒ aabbCC


↑ ↑ ↑
HB → HC HC → BC bB →bb

⇒ aabbcC ⇒ aabbcc ∈ L(G4 )


↑ ↑
bC →bc cC → cc

 De hecho, L(G4) = {anbncn: n ≥ 1}


Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales
1.2 Tipos de Gramáticas
 Definición:

 Gramática Tipo 2 o Gramática Libre de


Contexto:

 Sus producciones tienen la forma


A→σ
donde A es un símbolo no terminal y σ es una cadena
formada por símbolos terminales y/o no terminales.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas
 Ejemplo:
 Sea G5 la gramática dada por:
 Σ = {(, )}
 N = {S}
 Símbolo inicial: S
 Producciones:
 S → SS
 S → (S)
 S→()

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas

 Demostrar que (( )( )) ∈ L(G5).

S ⇒ ( S ) ⇒ ( SS ) ⇒ (( ) S ) ⇒ (( )( ))
↑ ↑ ↑ ↑
S →( S ) S → SS S →( ) S →( )

∴ S ⇒ *(( )( )), (( )( )) ∈ L(G4 )

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas
 Definición:
 Una gramática G es
 1) Lineal por la derecha o Regular por la derecha si sus
producciones tienen una de las siguientes formas:
 A→λ
 A → aB
 A→a
 2) Lineal por la izquierda o Regular por la izquierda si sus
producciones tienen una de las siguientes formas:
 A→λ
 A → Ba
 A→a
 Donde A y B son símbolos no terminales y a es un símbolo
terminal.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas

 Las gramáticas regulares por la izquierda y


derecha están contenidas en la clase de
Gramáticas Tipo 3 también llamadas
Gramáticas Regulares.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas
 Ejemplo:
 Sea la gramática regular por la derecha G6 dada por:
 Σ = {a, b, c}
 N = {S, A}
 Símbolo inicial: S
 Producciones:
 S → aS
 S → bA
 A→λ
 A → cA

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas

 Definición:

 Una gramática ambigua G es aquella en la que


existe una sentencia σ en L(G) la cual tiene
asociados dos árboles de derivación distintos.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas
 Ejemplo:
 Sea G7 la gramática especificada como:
 Σ = {0, 1}
 N = {S, A}
 Símbolo Inicial: S
 Producciones:
 S→A
 A → A0A | 1

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas
 Sea σ = 10101. Entonces se tienen los árboles de derivación:
S S
A A

A 0 A A 0 A

A 0 A 1 1 A 0 A

1 1 1 1
 Por lo tanto la gramática G7 es ambigua.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas

 Definición:

 Un lenguaje L es inherentemente ambiguo si


toda gramática G que lo genera es ambigua.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


1.2 Tipos de Gramáticas
 Definición:
 Sea G una gramática y sea σ una sentencia en L(G). Sea
una derivación de σ dada por
S ⇒ σ1 ⇒ σ2 ⇒ … ⇒ σn = σ
Se dice que la derivación es
 Una derivación por la izquierda si en cada derivación directa
σi ⇒ σi+1 el símbolo no terminal de σi que está siendo
reemplazado es el que está más a la izquierda.
 Se tiene una derivación por la derecha si en cada derivación
directa el símbolo no terminal que está siendo reemplazado es el
que está más hacia la derecha.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


Tarea

 Leer secciones 1.3 y 1.4.

 Ejercicios Capítulo 1
 Incisos 2 al 22.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales


Bibliografía

 Formal Languages and Automata Theory.


 Vladimir Drobot
 Computer Science Press
 1989.

Dr. Ricardo Pérez Aguila Autómatas y Lenguajes Formales

Anda mungkin juga menyukai