Concatenação - Concatenation

Na teoria da linguagem formal e na programação de computadores , a concatenação de strings é a operação de juntar strings de caracteres ponta a ponta . Por exemplo, a concatenação de "neve" e "bola" é "bola de neve". Em certas formalizações da teoria da concatenação , também chamada de teoria das cordas, a concatenação de cordas é uma noção primitiva .

Sintaxe

Em muitas linguagens de programação , a concatenação de string é um operador de infixo binário . O operador (mais) geralmente é sobrecarregado para denotar a concatenação de argumentos de string: tem o valor . Em outras linguagens, há um operador separado, especialmente para especificar a conversão implícita de tipo em string, em oposição ao comportamento mais complicado do plus genérico. Os exemplos incluem em Edinburgh IMP , Perl e PHP, em Lua e em Ada, AppleScript e Visual Basic. Existe outra sintaxe, como em PL / I e Oracle Database SQL . +"Hello, " + "World""Hello, World"...&||

Em algumas linguagens, notavelmente C, C ++ e Python, há concatenação de literal de string , o que significa que literais de string adjacentes são concatenados, sem nenhum operador: "Hello, " "World"tem o valor "Hello, World". Em outras linguagens, a concatenação de literais de string com um operador é avaliada em tempo de compilação, por meio de dobramento constante , embora isso geralmente seja um detalhe de implementação do compilador, em vez de um recurso de linguagem.

Implementação

Na programação, a concatenação de string geralmente ocorre em tempo de execução, pois os valores de string geralmente não são conhecidos até o tempo de execução. No entanto, no caso de literais de string, os valores são conhecidos em tempo de compilação e, portanto, a concatenação de string pode ser feita em tempo de compilação, por meio de concatenação de literal de string ou dobramento constante .

Concatenação de conjuntos de strings

Na teoria da linguagem formal e correspondência de padrões (incluindo expressões regulares ), a operação de concatenação em strings é generalizada para uma operação em conjuntos de strings da seguinte forma:

Para dois conjuntos de cadeias de S 1 e S 2 , a concatenação S 1 S 2 consiste de todas as cordas da forma vw onde v é uma cadeia de caracteres a partir de S 1 e W é uma cadeia de caracteres a partir de S 2 , ou formalmente S 1 S 2 = { vw  : vS 1 , wS 2 } . Muitos autores também usam a concatenação de um conjunto de strings e uma única string, e vice-versa, que são definidas de forma semelhante por S 1 w = { vw  : vS 1 } e vS 2 = { vw  : wS 2 } . Nestas definições, a cadeia vw é a concatenação normal de cordas v e w , conforme definido na seção introdutória.

Por exemplo, se F = {a, b, c, d, e, f, g, h} e R = {1, 2, 3, 4, 5, 6, 7, 8} , então FR denota o conjunto de todas as coordenadas do tabuleiro de xadrez em notação algébrica , enquanto e R denota o conjunto de todas as coordenadas do arquivo dos reis .

Nesse contexto, os conjuntos de strings são freqüentemente chamados de linguagens formais. O operador de concatenação é geralmente expresso como justaposição simples (como na multiplicação ).

Propriedades algébricas

As strings sobre um alfabeto, com a operação de concatenação, formam uma estrutura algébrica associativa com o elemento de identidade a string nula - um monóide livre .

Conjuntos de strings com concatenação e alternação formam um semiramento , com concatenação (*) distribuindo sobre alternância (+); 0 é o conjunto vazio e 1 o conjunto que consiste apenas na string nula.

Formulários

Áudio / telefonia

Na programação para telefonia, a concatenação é usada para fornecer feedback de áudio dinâmico a um usuário. Por exemplo, em um relógio falante de "hora do dia" , a concatenação é usada para fornecer a hora correta reproduzindo as gravações apropriadas concatenadas . Por exemplo:

  • "No tom o tempo será"
  • "Oito"
  • "Trinta"
  • "Cinco"
  • "e"
  • "Vinte"
  • "Cinco"
  • "Segundos"

As gravações em si existem separadamente, mas reproduzi-las uma após a outra fornece uma frase gramaticalmente correta para o ouvinte.

Esta técnica também é usada em anúncios alterar o número, correio de voz sistemas, ou a maioria das aplicações de telefonia que fornecem feedback dinâmico para o chamador (por exemplo Moviefone , tellme , e outros).

A programação de qualquer tipo de sistema de endereçamento público computadorizado também pode empregar concatenação para anúncios públicos dinâmicos (por exemplo, voos em um aeroporto). O sistema arquivaria a fala gravada de números, rotas ou companhias aéreas, destinos, horários, etc. e os reproduzia em uma sequência específica para produzir uma frase gramaticalmente correta que é anunciada em toda a instalação.

Teoria do banco de dados

Um dos princípios do projeto de banco de dados relacional é que os campos das tabelas de dados devem refletir uma única característica do assunto da tabela, o que significa que não devem conter strings concatenadas. Quando a concatenação é desejada em um relatório, ela deve ser fornecida no momento da execução do relatório. Por exemplo, para exibir o endereço físico de um determinado cliente, os dados podem incluir o número do prédio, nome da rua, número da subunidade do prédio, nome da cidade, nome do estado / província, código postal e nome do país, por exemplo, "123 Fake St Apt 4, Boulder, CO 80302, USA ", que combina sete campos. No entanto, a tabela de dados de clientes não deve usar um campo para armazenar essa string concatenada; em vez disso, a concatenação dos sete campos deve acontecer na execução do relatório. A razão para tais princípios é que, sem eles, a entrada e atualização de grandes volumes de dados torna-se sujeita a erros e exige muito trabalho. Inserir separadamente a cidade, estado, CEP e país permite a validação de entrada de dados (como detectar uma abreviatura de estado inválida). Em seguida, esses itens separados podem ser usados ​​para classificar ou indexar os registros, como todos com "Boulder" como nome da cidade.

Matemática recreativa

Na matemática recreativa , muitos problemas dizem respeito às propriedades dos números sob a concatenação de seus numerais em alguma base . Os exemplos incluem primos domésticos (primos obtidos pela fatoração repetida da concatenação crescente de fatores primos de um determinado número), números de Smarandache-Wellin (as concatenações dos primeiros números primos ) e as constantes de Champernowne e Copeland-Erdős (os números reais formados por as representações decimais dos inteiros positivos e dos números primos, respectivamente).

Veja também

Referências