Está en la página 1de 57

Lenguajes Formales

Lenguajes Formales

Gerardo Ospina
gerardo.ospina@escuelaing.edu.co

Facultad de Ingenierı́a de Sistemas


Escuela Colombiana de Ingenierı́a Julio Garavito

Septiembre 8 de 2021
Lenguajes Formales

Lenguajes Formales

Sı́mbolo
Concepto atómico (indivisible) que tiene una representación gráfica
Lenguajes Formales

Lenguajes Formales

Sı́mbolo
Concepto atómico (indivisible) que tiene una representación gráfica

Alfabeto
Conjunto finito de sı́mbolos
Lenguajes Formales

Lenguajes Formales

Sı́mbolo
Concepto atómico (indivisible) que tiene una representación gráfica

Alfabeto
Conjunto finito de sı́mbolos

Cadena, Palabra o Frase sobre un alfabeto V


Una sucesión finita α = a1 a2 · · · ak de sı́mbolos de un alfabeto V
Lenguajes Formales

Lenguajes Formales

Sı́mbolo
Concepto atómico (indivisible) que tiene una representación gráfica

Alfabeto
Conjunto finito de sı́mbolos

Cadena, Palabra o Frase sobre un alfabeto V


Una sucesión finita α = a1 a2 · · · ak de sı́mbolos de un alfabeto V

Las cadenas se notarán con letras minúsculas del alfabeto griego


(α, β, γ, δ, · · · ) o con las últimas letras minúsculas del alfabeto
latino (s, t, u, v , w , x, y , z)
Lenguajes Formales

Operaciones sobre cadenas

Dada una cadena α = a1 a2 · · · ak


Lenguajes Formales

Operaciones sobre cadenas

Dada una cadena α = a1 a2 · · · ak


Longitud de α
El número de sı́mbolos que componen la cadena α
Lenguajes Formales

Operaciones sobre cadenas

Dada una cadena α = a1 a2 · · · ak


Longitud de α
El número de sı́mbolos que componen la cadena α

|α| = k
Lenguajes Formales

Operaciones sobre cadenas

Cadena nula
Cadena especial que no tiene sı́mbolos
Lenguajes Formales

Operaciones sobre cadenas

Cadena nula
Cadena especial que no tiene sı́mbolos

Se denota por λ (En otras referencias por )


Lenguajes Formales

Operaciones sobre cadenas

Cadena nula
Cadena especial que no tiene sı́mbolos

Se denota por λ (En otras referencias por )

|λ| = 0
Lenguajes Formales

Operaciones sobre cadenas

Cadena nula
Cadena especial que no tiene sı́mbolos

Se denota por λ (En otras referencias por )

|λ| = 0

λ es una cadena válida sobre cualquier alfabeto


Lenguajes Formales

Operaciones sobre cadenas


Dadas dos cadenas α = a1 a2 · · · ak y β = b1 b2 · · · bn
Lenguajes Formales

Operaciones sobre cadenas


Dadas dos cadenas α = a1 a2 · · · ak y β = b1 b2 · · · bn
Concatenación de α y β
Cadena que resulta de colocar los sı́mbolos de β a continuación de
los de α
Lenguajes Formales

Operaciones sobre cadenas


Dadas dos cadenas α = a1 a2 · · · ak y β = b1 b2 · · · bn
Concatenación de α y β
Cadena que resulta de colocar los sı́mbolos de β a continuación de
los de α

α • β = a1 a2 · · · ak b1 b2 · · · bn
Lenguajes Formales

Operaciones sobre cadenas


Dadas dos cadenas α = a1 a2 · · · ak y β = b1 b2 · · · bn
Concatenación de α y β
Cadena que resulta de colocar los sı́mbolos de β a continuación de
los de α

α • β = a1 a2 · · · ak b1 b2 · · · bn

|α • β| = |α| + |β| = k + n
Lenguajes Formales

Operaciones sobre cadenas


Dadas dos cadenas α = a1 a2 · · · ak y β = b1 b2 · · · bn
Concatenación de α y β
Cadena que resulta de colocar los sı́mbolos de β a continuación de
los de α

α • β = a1 a2 · · · ak b1 b2 · · · bn

|α • β| = |α| + |β| = k + n

Identidad de la concatenación de cadenas


α•λ=α=λ•α
Lenguajes Formales

Operaciones sobre cadenas


Dadas dos cadenas α = a1 a2 · · · ak y β = b1 b2 · · · bn
Concatenación de α y β
Cadena que resulta de colocar los sı́mbolos de β a continuación de
los de α

α • β = a1 a2 · · · ak b1 b2 · · · bn

|α • β| = |α| + |β| = k + n

Identidad de la concatenación de cadenas


α•λ=α=λ•α

Suele omitirse el punto de la concatenación: α • β = αβ


Lenguajes Formales

Operaciones sobre cadenas

Dada una cadena α = a1 a2 · · · ak


Lenguajes Formales

Operaciones sobre cadenas

Dada una cadena α = a1 a2 · · · ak

Cualquier cadena α puede escribirse como α = ϕ • µ • ρ.


Lenguajes Formales

Operaciones sobre cadenas

Dada una cadena α = a1 a2 · · · ak

Cualquier cadena α puede escribirse como α = ϕ • µ • ρ.

Prefijo, sufijo y subcadena de α


ϕ es un prefijo de α
µ es una subcadena de α
ρ es un sufijo de α
Lenguajes Formales

Operaciones sobre cadenas

Dada una cadena α = a1 a2 · · · ak

Cualquier cadena α puede escribirse como α = ϕ • µ • ρ.

Prefijo, sufijo y subcadena de α


ϕ es un prefijo de α
µ es una subcadena de α
ρ es un sufijo de α

µ • ρ 6= λ ϕ es un prefijo propio de α
ϕ • ρ 6= λ µ es una subcadena propia de α
ϕ • µ 6= λ ρ es un sufijo propio de α
Lenguajes Formales

Operaciones sobre cadenas

Dada una cadena α = a1 a2 · · · ak sobre un alfabeto V


Lenguajes Formales

Operaciones sobre cadenas

Dada una cadena α = a1 a2 · · · ak sobre un alfabeto V


Potencia de α
αo = λ
αn = α • αn−1 n≥1
Lenguajes Formales

Operaciones sobre cadenas

Dada una cadena α = a1 a2 · · · ak sobre un alfabeto V


Potencia de α
αo = λ
αn = α • αn−1 n≥1

Reverso de α
λR = λ
(s • α)R = αR • s s∈V
Lenguajes Formales

Lenguajes Formales

Lenguaje sobre un alfabeto V


Conjunto arbitrario de cadenas sobre un alfabeto V
Lenguajes Formales

Lenguajes Formales

Lenguaje sobre un alfabeto V


Conjunto arbitrario de cadenas sobre un alfabeto V

Los lenguajes se notarán con letras mayúsculas del alfabeto latino


Lenguajes Formales

Lenguajes Formales

Lenguaje sobre un alfabeto V


Conjunto arbitrario de cadenas sobre un alfabeto V

Los lenguajes se notarán con letras mayúsculas del alfabeto latino

Φ es un lenguaje valido sobre cualquier alfabeto


Lenguajes Formales

Lenguajes Formales

Lenguaje sobre un alfabeto V


Conjunto arbitrario de cadenas sobre un alfabeto V

Los lenguajes se notarán con letras mayúsculas del alfabeto latino

Φ es un lenguaje valido sobre cualquier alfabeto

{λ} es un lenguaje valido sobre cualquier alfabeto


Lenguajes Formales

Lenguajes Formales

Lenguaje sobre un alfabeto V


Conjunto arbitrario de cadenas sobre un alfabeto V

Los lenguajes se notarán con letras mayúsculas del alfabeto latino

Φ es un lenguaje valido sobre cualquier alfabeto

{λ} es un lenguaje valido sobre cualquier alfabeto

Los lenguages Φ y {λ} son diferentes


Lenguajes Formales

Operaciones sobre lenguajes


Dados dos lenguajes L y M
Lenguajes Formales

Operaciones sobre lenguajes


Dados dos lenguajes L y M
Concatenación de L y M
L • M = {α, β | α ∈ L ∧ β ∈ M : α • β}
Lenguajes Formales

Operaciones sobre lenguajes


Dados dos lenguajes L y M
Concatenación de L y M
L • M = {α, β | α ∈ L ∧ β ∈ M : α • β}

L • M = {α • β | α ∈ L ∧ β ∈ M}
Lenguajes Formales

Operaciones sobre lenguajes


Dados dos lenguajes L y M
Concatenación de L y M
L • M = {α, β | α ∈ L ∧ β ∈ M : α • β}

L • M = {α • β | α ∈ L ∧ β ∈ M}

Identidad de la concatenación de lenguajes


L • {λ} = L = {λ} • L
Lenguajes Formales

Operaciones sobre lenguajes


Dados dos lenguajes L y M
Concatenación de L y M
L • M = {α, β | α ∈ L ∧ β ∈ M : α • β}

L • M = {α • β | α ∈ L ∧ β ∈ M}

Identidad de la concatenación de lenguajes


L • {λ} = L = {λ} • L

Anulador de la concatenación de lenguajes


L•Φ=Φ=Φ•L
Lenguajes Formales

Operaciones sobre lenguajes


Dados dos lenguajes L y M
Concatenación de L y M
L • M = {α, β | α ∈ L ∧ β ∈ M : α • β}

L • M = {α • β | α ∈ L ∧ β ∈ M}

Identidad de la concatenación de lenguajes


L • {λ} = L = {λ} • L

Anulador de la concatenación de lenguajes


L•Φ=Φ=Φ•L

Suele omitirse el punto de la concatenación: L • M = LM


Lenguajes Formales

Operaciones sobre lenguajes

Dado un lenguaje L sobre un alfabeto V


Lenguajes Formales

Operaciones sobre lenguajes

Dado un lenguaje L sobre un alfabeto V


Potencia de L
Lo = {λ}
Ln = L • Ln−1 n≥1
Lenguajes Formales

Operaciones sobre lenguajes

Dado un lenguaje L sobre un alfabeto V


Potencia de L
Lo = {λ}
Ln = L • Ln−1 n≥1

Reverso de L
LR = {ω | ω ∈ L : ω R }
Lenguajes Formales

Operaciones sobre lenguajes

Dado un lenguaje L sobre un alfabeto V


Potencia de L
Lo = {λ}
Ln = L • Ln−1 n≥1

Reverso de L
LR = {ω | ω ∈ L : ω R }

LR = {ω R | ω ∈ L}
Lenguajes Formales

Operaciones sobre lenguajes

Sea V un alfabeto y W el universo de las cadenas sobre V .


Sea un lenguaje L ⊆ W
Lenguajes Formales

Operaciones sobre lenguajes

Sea V un alfabeto y W el universo de las cadenas sobre V .


Sea un lenguaje L ⊆ W

Lk ⊆ W para cualquier k ≥ 0
Lenguajes Formales

Operaciones sobre lenguajes

Sea V un alfabeto y W el universo de las cadenas sobre V .


Sea un lenguaje L ⊆ W

Lk ⊆ W para cualquier k ≥ 0

Clausura reflexiva y transitiva de L


L∗ = ∞ k
S
k=0 L
Lenguajes Formales

Operaciones sobre lenguajes

Sea V un alfabeto y W el universo de las cadenas sobre V .


Sea un lenguaje L ⊆ W

Lk ⊆ W para cualquier k ≥ 0

Clausura reflexiva y transitiva de L


L∗ = ∞ k
S
k=0 L

L∗ es el conjunto de todas las posibles cadenas sobre L


Lenguajes Formales

Operaciones sobre lenguajes

Sea V un alfabeto y W el universo de las cadenas sobre V .


Sea un lenguaje L ⊆ W

Lk ⊆ W para cualquier k ≥ 0

Clausura reflexiva y transitiva de L


L∗ = ∞ k
S
k=0 L

L∗ es el conjunto de todas las posibles cadenas sobre L

V ∗ es el conjunto de todas las posibles cadenas sobre V . V ∗ = W


Lenguajes Formales

Operaciones sobre lenguajes

Sea V un alfabeto y W el universo de las cadenas sobre V .


Sea un lenguaje L ⊆ W

Lk ⊆ W para cualquier k ≥ 0

Clausura reflexiva y transitiva de L


L∗ = ∞ k
S
k=0 L

L∗ es el conjunto de todas las posibles cadenas sobre L

V ∗ es el conjunto de todas las posibles cadenas sobre V . V ∗ = W

El operador unario ∗ se conoce como la estrella de Kleene


Lenguajes Formales

Operaciones sobre lenguajes

Sea V un alfabeto y W el universo de las cadenas sobre V .


Sea un lenguaje L ⊆ W
Lenguajes Formales

Operaciones sobre lenguajes

Sea V un alfabeto y W el universo de las cadenas sobre V .


Sea un lenguaje L ⊆ W
Clausura transitiva de L
S∞
L+ = k=1 L
k
Lenguajes Formales

Operaciones sobre lenguajes

Sea V un alfabeto y W el universo de las cadenas sobre V .


Sea un lenguaje L ⊆ W
Clausura transitiva de L
S∞
L+ = k=1 L
k

L+ no considera a L0 como parte de la clausura


Lenguajes Formales

Lenguajes unitarios

Sea V un alfabeto
Lenguajes Formales

Lenguajes unitarios

Sea V un alfabeto
Lenguaje unitario sobre V
Contiene exactamente una cadena de longitud 1 sobre V
Lenguajes Formales

Lenguajes unitarios

Sea V un alfabeto
Lenguaje unitario sobre V
Contiene exactamente una cadena de longitud 1 sobre V

Se denotan con el mismo sı́mbolo al cual contienen


Lenguajes Formales

Lenguajes unitarios

Sea V un alfabeto
Lenguaje unitario sobre V
Contiene exactamente una cadena de longitud 1 sobre V

Se denotan con el mismo sı́mbolo al cual contienen

Sea V = {0, 1}

1 = {1} 2 = {2}

λ = {λ}
Lenguajes Formales

Expresiones regulares

Expresión Regular
Expresión sobre lenguajes unitarios que describe otro lenguaje
Lenguajes Formales

Expresiones regulares

Expresión Regular
Expresión sobre lenguajes unitarios que describe otro lenguaje

Operadores: ∪, • y ∗
Lenguajes Formales

Expresiones regulares

Expresión Regular
Expresión sobre lenguajes unitarios que describe otro lenguaje

Operadores: ∪, • y ∗

V = {0, 1}

01∗ Lenguaje de las cadenas que comienzan con un 0 y


luego tienen 0 o mas 1s
(0 ∪ 1)∗ Lenguaje de todas las cadenas posibles sobre V
Lenguajes Formales

Expresiones regulares

Expresión Regular
Expresión sobre lenguajes unitarios que describe otro lenguaje

Operadores: ∪, • y ∗

V = {0, 1}

01∗ Lenguaje de las cadenas que comienzan con un 0 y


luego tienen 0 o mas 1s
(0 ∪ 1)∗ Lenguaje de todas las cadenas posibles sobre V

Lenguaje Regular
Lenguaje que puede ser descrito por una expresión regular

También podría gustarte