Introducción
En teoría de la computación y en matemáticas discretas la palabra (o cadena) es una secuencia finita de símbolos extraídos de un alfabeto. Un alfabeto se entiende normalmente como un conjunto no vacío y finito de símbolos; la exigencia de que no sea vacío evita definiciones degeneradas. Los símbolos del alfabeto suelen llamarse letras, caracteres o tokens según el contexto. Ejemplos sencillos de alfabetos son {0,1} (alfabeto binario), el conjunto de letras de un idioma o el conjunto de palabras clave de un lenguaje de programación.
Ejemplos y notación básica
Una palabra sobre un alfabeto Σ es cualquier secuencia finita de elementos de Σ; su longitud es el número de símbolos que contiene. La cadena vacía, que no contiene símbolos, se designa frecuentemente por λ o ε. Si Σ = {0,1}, algunas palabras sobre Σ son 0, 1, 01, 1010; la longitud de 1010 es 4. La operación más básica entre palabras es la concatenación: si u = "ab" y v = "cd", entonces u·v = "abcd". En notación formal el conjunto de todas las palabras (todas las cadenas finitas) sobre Σ se escribe Σ*, llamado cierre o estrella de Kleene.
Propiedades y conceptos relacionados
Las palabras admiten varios conceptos útiles: prefijos, sufijos, subcadenas, repetición (potencias) y factorización. El prefijo propio de "abc" incluye "a" y "ab"; un sufijo propio incluye "bc" y "c". La longitud se denota habitualmente |w| para una palabra w. Existen relaciones de orden (por ejemplo, la relación "es prefijo de") y operaciones algebraicas que hacen del conjunto Σ* una monoide libre con operación concatenación y elemento identidad λ. El nombre estrella de Kleene proviene del matemático Stephen Cole Kleene, que formalizó estas ideas en el estudio de expresiones regulares y autómatas.
Historia y desarrollo
La noción de cadena surgió con el desarrollo de la lógica matemática y la teoría de conjuntos aplicada a la computación. A mediados del siglo XX, investigadores como Kleene, Myhill, Nerode y Chomsky establecieron las bases formales que conectan palabras con gramáticas, lenguajes formales y autómatas. Estas estructuras permitieron clasificar lenguajes en jerarquías (regulares, libres de contexto, recursivamente enumerables) y estudiar problemas de reconocimiento y decisión. En documentación técnica y estándares modernos, la idea de palabra se adapta para definir tokens, formatos de archivo y protocolos de comunicación.
Aplicaciones y utilidad
Las palabras son el objeto fundamental de los lenguajes formales y los autómatas finitos. Sirven para modelar cadenas de entrada en analizadores léxicos, para diseñar expresiones regulares, para verificar protocolos de red, y para codificar secuencias biológicas (ADN/RNA) en bioinformática. También son cruciales en teoría de la codificación y criptografía, donde la estructura y la longitud de las palabras influyen en la compresibilidad y la seguridad. En programación, la manipulación de cadenas es una tarea cotidiana que refleja estos conceptos teóricos.
Diferencias y notas finales
Es importante distinguir entre palabra y lenguaje: una palabra es un elemento aislado (una cadena concreta), mientras que un lenguaje es un conjunto de palabras. Algunas preguntas clave son si un lenguaje es finito o infinito, si es reconocible por un autómata y qué complejidad tiene su decisión. Para profundizar en aspectos computacionales y formales puede consultarse material sobre autómatas, gramáticas formales, expresiones regulares y teoría de la computabilidad. Estos enlaces llevan a desarrollos teóricos y aplicaciones prácticas que muestran por qué la noción de palabra es central en la informática teórica y en muchas disciplinas aplicadas.