En la teoría del lenguaje formal , la cadena vacía , o palabra vacía , es la única cadena de longitud cero.
Formalmente, una cadena es una secuencia finita y ordenada de caracteres, como letras, dígitos o espacios. La cadena vacía es el caso especial en el que la secuencia tiene longitud cero, por lo que no hay símbolos en la cadena. Solo hay una cadena vacía, porque dos cadenas solo son diferentes si tienen longitudes diferentes o una secuencia de símbolos diferente. En los tratamientos formales, [1] la cadena vacía se denota con ε o, a veces, Λ o λ .
La cadena vacía no debe confundirse con el lenguaje vacío ∅ , que es un lenguaje formal (es decir, un conjunto de cadenas) que no contiene cadenas, ni siquiera la cadena vacía.
La cadena vacía tiene varias propiedades:
En gramáticas libres de contexto , una regla de producción que permite que un símbolo produzca una cadena vacía se conoce como ε-producción, y se dice que el símbolo es "anulable".
En la mayoría de los lenguajes de programación , las cadenas son un tipo de datos . Las cadenas se almacenan normalmente en direcciones de memoria (ubicaciones) distintas. Por lo tanto, la misma cadena (por ejemplo, la cadena vacía) puede almacenarse en dos o más lugares de la memoria.
De esta manera, podrían existir múltiples cadenas vacías en la memoria, en contraste con la definición de la teoría formal, para la cual solo hay una cadena vacía posible. Sin embargo, una función de comparación de cadenas indicaría que todas estas cadenas vacías son iguales entre sí.
Incluso una cadena de longitud cero puede requerir memoria para almacenarla, dependiendo del formato que se utilice. En la mayoría de los lenguajes de programación, la cadena vacía se distingue de una referencia nula (o puntero nulo) porque una referencia nula no apunta a ninguna cadena, ni siquiera a la cadena vacía. La cadena vacía es una cadena legítima, sobre la que deberían funcionar la mayoría de las operaciones con cadenas. Algunos lenguajes tratan algunos o todos los siguientes elementos de forma similar: cadenas vacías, referencias nulas, el entero 0, el número de punto flotante 0, el valor booleano false , el carácter ASCII NUL u otros valores similares.
La cadena vacía se suele representar de forma similar a otras cadenas. En implementaciones con caracteres de terminación de cadena ( cadenas terminadas en cero o líneas de texto sin formato), la cadena vacía se indica mediante el uso inmediato de este carácter de terminación.
Existen diferentes funciones, métodos, macros o modismos para comprobar si una cadena está vacía en diferentes idiomas. [ ejemplo necesario ]
La cadena vacía es una representación sintácticamente válida del cero en notación posicional (en cualquier base), que no contiene ceros a la izquierda . Dado que la cadena vacía no tiene una representación visual estándar fuera de la teoría del lenguaje formal, el número cero se representa tradicionalmente con un solo dígito decimal 0 .
El área de memoria llena de ceros, interpretada como una cadena terminada en nulo , es una cadena vacía.
Las líneas de texto vacías muestran la cadena vacía. Esto puede ocurrir a partir de dos EOL consecutivos , como ocurre a menudo en los archivos de texto , y esto a veces se utiliza en el procesamiento de texto para separar párrafos , por ejemplo, en MediaWiki .
""
. character(0)
crea vectores de caracteres vacíos, que generarán 0 cuando se cuenten.