Lenguajes Formales desde CERO

 Lenguajes Formales desde CERO

Introducción: Números y Palabras

¿Dónde se unen los números y las palabras? Un ejemplo claro es la propiedad espejo (palíndromos numéricos), donde un número se lee igual de izquierda a derecha que de derecha a izquierda. Para estudiar los números como palabras, necesitamos herramientas matemáticas: los lenguajes formales.

¿Qué veremos en este tutorial?

  • Qué son los lenguajes formales.

  • Operaciones básicas sobre ellos.

  • Su relación con la teoría de autómatas.


1. Alfabeto (Σ)

Un alfabeto es un conjunto finito de símbolos.

Ejemplos:

  • Alfabeto español: {a, b, c, ..., z}.

  • Alfabeto binario: {0, 1}.

  • Alfabeto decimal: {0, 1, 2, ..., 9}.

¡Importante!
Un alfabeto debe ser finito.
❌ Los números naturales no son un alfabeto (son infinitos).
✅ Los dígitos del 0 al 9 sí forman un alfabeto finito. Con combinaciones de estos símbolos podemos representar todos los números naturales.


2. Cadenas (o Palabras)

Una cadena es una secuencia finita y ordenada de símbolos de un alfabeto.

Ejemplo:

  • Con Σ = {a, b, c}, "abc" es una cadena válida.

  • Con Σ = {0, 1}, "0110" es una cadena válida.

Cadena vacía (λ o ε)

Es una cadena de longitud cero, sin símbolos. Es un concepto fundamental en lenguajes formales.


3. Propiedades de las Cadenas

Longitud de una cadena

La longitud (|w|) es el número de símbolos en la cadena.

Definición recursiva:

  • |λ| = 0.

  • Si w = a · x (donde 'a' es un símbolo y 'x' es una cadena), entonces |w| = 1 + |x|.

Ejemplo:
Para w = "like":

  • |"like"| = 1 + |"ike"|

  • |"ike"| = 1 + |"ke"|

  • |"ke"| = 1 + |"e"|

  • |"e"| = 1 + |λ| = 1 + 0 = 1

  • Resultado: |"like"| = 4.

Conteo de apariciones

|w|_a = número de veces que aparece el símbolo 'a' en la cadena w.

Ejemplo:
Para w = "suscrito", |w|_s = 2.


4. Orden de Cadenas

Para ordenar cadenas, primero se considera la longitud, luego el orden alfabético.

Ejemplos:

  • "hola" (longitud 4) va antes que "mundo" (longitud 5).

  • Si tienen igual longitud (ej: "sol" y "sal"): se ordenan alfabéticamente según los símbolos en cada posición ("sal" antes que "sol").


5. Conjunto de Todas las Cadenas Posibles

Alfabeto elevado a n (Σⁿ)

Conjunto de todas las cadenas de longitud n sobre Σ.

Ejemplo: Σ = {0, 1}

  • Σ⁰ = {λ} (solo cadena vacía)

  • Σ¹ = {0, 1}

  • Σ² = {00, 01, 10, 11}

  • Σⁿ tiene 2ⁿ elementos (combinatoria).

Clausura de Kleene (Σ*)

Es el conjunto de todas las cadenas posibles de cualquier longitud (incluida λ) sobre Σ.

Fórmula: Σ* = Σ⁰ ∪ Σ¹ ∪ Σ² ∪ Σ³ ∪ ...

Ejemplo: Σ = {0, 1}
Σ* = {λ, 0, 1, 00, 01, 10, 11, 000, 001, ...} (¡infinito!)

Clausura Positiva (Σ⁺)

Igual que Σ*, pero excluyendo la cadena vacía λ.
Σ⁺ = Σ¹ ∪ Σ² ∪ Σ³ ∪ ...


6. Aplicación y Significado

La Clausura de Kleene representa todas las posibilidades infinitas de un alfabeto:

Ejemplos:

  • Σ = {0, 1}: Σ* = todos los números binarios posibles.

  • Σ = letras español: Σ* = todas las palabras que puedan existir (pasado, presente y futuro).

  • Σ = caracteres ASCII: Σ* = todas las novelas, conversaciones, códigos, etc., escritos con ASCII.


Resumen de Conceptos Clave

TérminoDefiniciónSímbolo/Ejemplo
AlfabetoConjunto finito de símbolosΣ = {a, b, c}
CadenaSecuencia finita de símbolosw = "abc"
Cadena vacíaCadena de longitud 0λ o ε
LongitudNúmero de símbolos|"hola"| = 4
ΣⁿCadenas de longitud nΣ² = {aa, ab, ba, bb}
Σ* (Kleene)Todas las cadenas posibles (con λ)Σ* = Σ⁰ ∪ Σ¹ ∪ ...
Σ⁺ (Positiva)Todas las cadenas posibles (sin λ)Σ⁺ = Σ¹ ∪ Σ² ∪ ...

Próximos Pasos

En el siguiente tutorial veremos:

  • Operaciones con cadenas (concatenación, inversión, potencias).

  • Definición formal de lenguaje (subconjunto de Σ*).

  • Operaciones entre lenguajes (unión, intersección, concatenación).


¡No olvides practicar!
Prueba con diferentes alfabetos y genera ejemplos de cadenas, calcula longitudes, ordena cadenas y explora las infinitas posibilidades de Σ*.

Este es solo el comienzo del fascinante mundo de los lenguajes formales y su conexión con la teoría de autómatas. ¡Hasta el próximo tutorial!

Comentarios

Entradas más populares de este blog

Lenguajes Formales en el Contexto de Autómatas

Cada Símbolo Explicado ANTES de Usarlo

Por qué usar notación formal