Concatenación

Unión de cadenas en un lenguaje de programación

En la teoría de lenguajes formales y programación informática , la concatenación de cadenas es la operación de unir cadenas de caracteres de extremo a extremo. Por ejemplo, la concatenación de "nieve" y "pelota" 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 cadenas es una noción primitiva .

Sintaxis

En muchos lenguajes de programación , la concatenación de cadenas es un operador infijo binario y, en algunos, se escribe sin operador. Esto se implementa de diferentes maneras:

  • Sobrecarga del signo más +Ejemplo de C#: "Hello, " + "World"tiene el valor "Hello, World".
  • Operador dedicado, como .en PHP, &en Visual Basic [1] y ||en SQL. [2] [3] Esto tiene la ventaja sobre la reutilización +de que permite la conversión de tipo implícita a cadena.
  • Concatenación de cadenas literales , lo que significa que las cadenas adyacentes se concatenan sin ningún operador. Ejemplo de C: "Hello, " "World"tiene el valor "Hello, World".

Implementación

En programación, la concatenación de cadenas generalmente ocurre en tiempo de ejecución, ya que los valores de las cadenas normalmente no se conocen hasta el momento de ejecución. Sin embargo, en el caso de los literales de cadena, 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 la concatenación de literales de cadena o mediante el plegado de constantes , una posible optimización en tiempo de ejecución.

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:

Para dos conjuntos de cadenas 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 utilizan la concatenación de un conjunto de cadenas y una sola cadena, y viceversa, que se definen de forma 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 } , entonces 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 de la columna de los reyes .

En este contexto, los conjuntos de cadenas suelen denominarse lenguajes formales. El operador de concatenación suele expresarse como una simple yuxtaposición (como en el caso de la multiplicación ).

Propiedades algebraicas

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

Los conjuntos de cadenas con concatenación y alternancia forman un semianillo , donde la concatenación (*) se distribuye sobre la alternancia (+); 0 es el conjunto vacío y 1 el conjunto que consiste solo en la cadena nula.

Aplicaciones

Audio y telefonía

En la programación de telefonía, la concatenación se utiliza para proporcionar una respuesta de audio dinámica al usuario. Por ejemplo, en un reloj parlante que indica la hora del día , la concatenación se utiliza para dar la hora correcta reproduciendo las grabaciones correspondientes concatenadas entre sí. Por ejemplo: "al oír el tono, la hora será", "ocho", "treinta", "cinco", "y", "veinte", "cinco", "segundos".

Las grabaciones existen por separado, pero reproducirlas una tras otra proporciona una oración gramaticalmente correcta al oyente.

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

La programación de cualquier 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 la voz grabada de números, rutas o aerolíneas, destinos, horarios, etc. y los reproduciría en una secuencia específica para producir una oración gramaticalmente correcta que se anuncia en todo el recinto.

Teoría de bases 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 única característica del tema de la tabla, lo que significa que no deben contener cadenas concatenadas. Cuando se desea la concatenación en un informe, se debe proporcionar 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 o provincia, el código postal y el nombre del país, por ejemplo, "123 Fake St Apt 4, Boulder, CO 80302, EE. UU.", que combina siete campos. Sin embargo, la tabla de datos de clientes no debe utilizar un campo para almacenar esa cadena concatenada; en su lugar, la concatenación de los siete campos debe realizarse al ejecutar el informe. La razón de estos principios es que sin ellos, la entrada y actualización de grandes volúmenes de datos se vuelve propensa a errores y requiere mucho trabajo. La introducción por separado de la ciudad, el estado, el código postal y la nación permite validar la entrada de datos (por ejemplo, detectar una abreviatura de estado no válida). Luego, esos elementos separados se pueden utilizar para ordenar o indexar los registros, por ejemplo, todos aquellos que tengan "Boulder" como nombre de 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 . Algunos ejemplos incluyen los 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ős (los números reales formados por las representaciones decimales de los números enteros positivos y los números primos, respectivamente).

Véase también

Referencias

Citas

  1. ^ "Operadores de concatenación en Visual Basic". Guía de Visual Basic .NET Características del lenguaje: Operadores y expresiones . Microsoft. 2015.
  2. ^ "SQL | Operador de concatenación". geeksforgeeks.org . 12 de enero de 2018 . Consultado el 11 de agosto de 2023 .
  3. ^ "Operador de concatenación". Oracle Database Online Documentation, 10g Release 2 (10.2) / Administración: Referencia de SQL de base de datos . Oracle.

Fuentes

Retrieved from "https://en.wikipedia.org/w/index.php?title=Concatenation&oldid=1251501156"