Cuerda vacía - Empty string

En la teoría del lenguaje formal , la cadena vacía , o palabra vacía , es la cadena única de longitud cero.

Teoría formal

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 una 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 diferentes longitudes o una secuencia de símbolos diferente. En los tratamientos formales, 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:

  • | ε | = 0. Su longitud de cadena es cero.
  • ε ⋅ s = s ⋅ ε = s. La cadena vacía es el elemento de identidad de la operación de concatenación . El conjunto de todas las cadenas forma un monoide libre con respecto a ⋅ y ε.
  • ε R = ε. La inversión de la cadena vacía produce la cadena vacía.
  • La cadena vacía precede a cualquier otra cadena en orden lexicográfico , porque es la más corta de todas las cadenas.

En gramáticas libres de contexto , una regla de producción que permite que un símbolo produzca la cadena vacía se conoce como producción ε, y se dice que el símbolo es "anulable".

Usar en lenguajes de programación

En la mayoría de los lenguajes de programación, las cadenas son un tipo de datos . Las cadenas se almacenan normalmente en distintas ubicaciones de memoria . Esto significa que la misma cadena (por ejemplo, la cadena vacía) podría almacenarse en dos o más lugares de la memoria.

De esta manera, podría haber 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, según el formato que se utilice. En la mayoría de los lenguajes de programación, la cadena vacía es distinta 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 de cadena. Algunos lenguajes tratan algunos o todos los siguientes elementos de manera similar: cadenas vacías, referencias nulas, el entero 0, el número de coma flotante 0, el valor booleano falso , el carácter ASCII NUL u otros valores similares.

La cadena vacía generalmente se representa de manera similar a otras cadenas. En implementaciones con carácter de terminación de cadena (cadenas terminadas en nulo o líneas de texto sin formato), la cadena vacía se indica mediante el uso inmediato de este carácter de terminación.

representación λ Lenguajes de programación
"" C , C # , C ++ , Go , Haskell , Java , JavaScript , Julia , Lua , M , Objective-C (como una cadena C), OCaml , Perl , PHP , Python , Ruby , Scala , ML estándar , Swift , Tcl , Visual .NET básico
'' APL , Delphi , JavaScript , Matlab , Pascal , Perl , PHP , Python , Ruby , Smalltalk , SQL
{'\0'} C , C ++ , Objective-C (como una cadena C)
std::string() C ++
""s C ++ (desde el estándar de 2014 )
@"" Objective-C (como NSStringobjeto constante )
[NSString string] Objective-C (como un NSStringobjeto nuevo )
q(), qq() Perl
str() Pitón
%{}
%()
Rubí
string.Empty C # , Visual Basic .NET
String.make 0 '-' OCaml
{} Tcl
[[]] Lua

Ejemplos de cadenas vacías

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 consecutivas , como ocurre a menudo en archivos de texto , y esto a veces se usa en el procesamiento de texto para separar párrafos , por ejemplo, en MediaWiki .

Ver también

Referencias