Concatenación - Concatenation

En la teoría del lenguaje formal y la programación informática , la concatenación de cadenas es la operación de unir cadenas de caracteres de un extremo a otro . Por ejemplo, la concatenación de "nieve" y "bola" es "bola de nieve". En ciertas formalizaciones de la teoría de la concatenación , también llamada teoría de cuerdas, la concatenación de cuerdas es una noción primitiva .

Sintaxis

En muchos lenguajes de programación , la concatenación de cadenas es un operador infijo binario . El operador (más) a menudo se sobrecarga para denotar la concatenación de argumentos de cadena: tiene el valor . En otros lenguajes hay un operador separado, particularmente para especificar la conversión de tipo implícita a cadena, en contraposición al comportamiento más complicado para el plus genérico. Los ejemplos incluyen en Edinburgh IMP , Perl y PHP, en Lua y en Ada, AppleScript y Visual Basic. Existe otra sintaxis, como en PL / I y Oracle Database SQL . +"Hello, " + "World""Hello, World"...&||

En algunos lenguajes, en particular C, C ++ y Python, hay una concatenación literal de cadena , lo que significa que las cadenas literales adyacentes se concatenan, sin ningún operador: "Hello, " "World"tiene el valor "Hello, World". En otros lenguajes, la concatenación de cadenas literales con un operador se evalúa en tiempo de compilación, mediante un plegado constante , aunque esto suele ser un detalle de implementación del compilador, más que una característica del lenguaje.

Implementación

En programación, la concatenación de cadenas generalmente ocurre en tiempo de ejecución, ya que los valores de cadena no se conocen en general hasta el tiempo de ejecución. Sin embargo, en el caso de cadenas literales, los valores se conocen en tiempo de compilación y, por lo tanto, la concatenación de cadenas se puede realizar en tiempo de compilación, ya sea mediante concatenación de cadenas literales o mediante plegado constante .

Concatenación de conjuntos de cadenas

En la teoría del lenguaje formal y la coincidencia de patrones (incluidas las expresiones regulares ), la operación de concatenación en cadenas se generaliza a una operación en conjuntos de cadenas de la siguiente manera:

Durante dos juegos de cuerdas S 1 y S 2 , la concatenación S 1 S 2 consiste en todas las cadenas de la forma vw donde v es una cadena de S 1 y w es una cadena de S 2 , o formalmente S 1 S 2 = { vw  : vS 1 , wS 2 } . Muchos autores también usan la concatenación de un conjunto de cadenas y una sola cadena, y viceversa, que se definen de manera similar por S 1 w = { vw  : vS 1 } y vS 2 = { vw  : wS 2 } . En estas definiciones, la cadena vw es la concatenación ordinaria de las cadenas v y w como se define en la sección introductoria.

Por ejemplo, si F = {a, b, c, d, e, f, g, h} y R = {1, 2, 3, 4, 5, 6, 7, 8} , FR denota el conjunto de todas las coordenadas del tablero de ajedrez en notación algebraica , mientras que e R denota el conjunto de todas las coordenadas del archivo de los reyes .

En este contexto, los conjuntos de cadenas se denominan a menudo lenguajes formales. El operador de concatenación generalmente se expresa como yuxtaposición simple (como con la multiplicación ).

Propiedades algebraicas

Las cadenas sobre un alfabeto, con la operación de concatenación, forman una estructura algebraica asociativa con el elemento de identidad, la cadena nula , un monoide libre .

Los conjuntos de cadenas con concatenación y alternancia forman un semirrígido , con la concatenación (*) distribuyéndose sobre la alternancia (+); 0 es el conjunto vacío y 1 el conjunto que consiste solo en la cadena nula.

Aplicaciones

Audio / telefonía

En la programación de telefonía, la concatenación se utiliza para proporcionar retroalimentación de audio dinámica a un usuario. Por ejemplo, en un reloj hablante de "hora del día" , la concatenación se usa para dar la hora correcta reproduciendo las grabaciones apropiadas concatenadas juntas. Por ejemplo:

  • "En el tono el tiempo será"
  • "Ocho"
  • "Treinta"
  • "Cinco"
  • "y"
  • "Veinte"
  • "Cinco"
  • "Segundos"

Las grabaciones en sí existen por separado, pero reproducirlas una tras otra proporciona una oración gramaticalmente correcta para el oyente.

Esta técnica también se utiliza en los anuncios de cambio de número, correo de voz sistemas, o la mayoría de las aplicaciones de telefonía que proporcionan realimentación dinámica de la persona que llama (por ejemplo, Moviefone , tellme , y otros).

La programación para cualquier tipo de sistema de megafonía computarizado también puede emplear la concatenación para anuncios públicos dinámicos (por ejemplo, vuelos en un aeropuerto). El sistema archivaría el discurso grabado de números, rutas o aerolíneas, destinos, horas, etc. y los reproduciría en una secuencia específica para producir una oración gramaticalmente correcta que se anuncia en toda la instalación.

Teoría de la base de datos

Uno de los principios del diseño de bases de datos relacionales es que los campos de las tablas de datos deben reflejar una sola característica del tema de la tabla, lo que significa que no deben contener cadenas concatenas. Cuando se desea la concatenación en un informe, debe proporcionarse en el momento de ejecutar el informe. Por ejemplo, para mostrar la dirección física de un determinado cliente, los datos pueden incluir el número de edificio, el nombre de la calle, el número de subunidad del edificio, el nombre de la ciudad, el nombre del estado / provincia, el código postal y el nombre del país, por ejemplo, "123 Fake St Apt 4, Boulder, CO 80302, USA ", que combina siete campos. Sin embargo, la tabla de datos de los clientes no debe usar un campo para almacenar esa cadena concatenada; más bien, la concatenación de los siete campos debería ocurrir al ejecutar el informe. La razón de tales principios es que sin ellos, la entrada y actualización de grandes volúmenes de datos se vuelve propensa a errores y requiere mucha mano de obra. Ingresar por separado la ciudad, el estado, el código postal y la nación permite la validación de la entrada de datos (como la detección de una abreviatura de estado no válida). Luego, esos elementos separados se pueden usar para ordenar o indexar los registros, como todos con "Boulder" como nombre de la ciudad.

Matemáticas recreativas

En matemáticas recreativas , muchos problemas se refieren a las propiedades de los números bajo la concatenación de sus numerales en alguna base . Los ejemplos incluyen los números primos caseros (primos obtenidos al factorizar repetidamente la concatenación creciente de factores primos de un número dado), los números de Smarandache-Wellin (las concatenaciones de los primeros números primos ) y las constantes de Champernowne y Copeland-Erd (los números reales formados por las representaciones decimales de los enteros positivos y los números primos, respectivamente).

Ver también

Referencias