Cuerda vacía

De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a buscar

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 longitudes diferentes o una secuencia de símbolos diferente. En 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 las 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".

Uso en lenguajes de programación

En la mayoría de los lenguajes de programación, las cadenas son un tipo de datos . Las cadenas normalmente se almacenan en distintas direcciones de memoria (ubicaciones). 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 forma, 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 cual deberían funcionar la mayoría de las operaciones de cadena. Algunos lenguajes tratan algunos o todos los siguientes de manera similar: cadenas vacías, referencias nulas, el número entero 0, el número de punto 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 , Lua , MATLAB , Pascal , Perl , PHP , Python , R , Ruby , Smalltalk , SQL
character(0) R [3]
{'\0'} C , C++ , Objective-C (como una cadena C)
std::string() C++
""s C++ (desde el estándar de 2014 )
@"" Objective-C (como un objeto constante NSString)
[NSString string] Objective-C (como un nuevo NSStringobjeto)
q(), qq() Perl
str() Pitón
%{}
%()
Rubí
string.Empty C# , Visual Basic. NET
String.make 0 '-' OCaml
{} Tcl
[[]] Lúa

Ejemplos de cadenas vacías

La cadena vacía es una representación sintácticamente válida de cero en notación posicional (en cualquier base), que no contiene ceros iniciales . 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 se usa a veces en el procesamiento de texto para separar párrafos , por ejemplo, en MediaWiki .

Véase también

Referencias

  1. ^ Corcoran, Juan; franco, Guillermo; Maloney, Michael (1974). "Teoria de las cuerdas". Revista de Lógica Simbólica . 39 (4): 625–637. doi : 10.2307/2272846 . JSTOR2272846  . _
  2. ^ CSE1002 Apuntes de clase - Lexicográfico
  3. ^ Hay dos formas de crear "cadenas vacías" en R; el otro aparece aquí como"". character(0)crea vectores de caracteres vacíos, que generarán 0 cuando se cuenten.