Concaténation - Concatenation

Dans la théorie des langages formels et la programmation informatique , la concaténation de chaînes est l'opération consistant à joindre des chaînes de caractères de bout en bout . Par exemple, la concaténation de « neige » et « boule » est « boule de neige ». Dans certaines formalisations de la théorie de la concaténation , également appelée théorie des cordes, la concaténation des cordes est une notion primitive .

Syntaxe

Dans de nombreux langages de programmation , la concaténation de chaînes est un opérateur binaire infixe . L' +opérateur (plus) est souvent surchargé pour indiquer la concaténation des arguments de chaîne : "Hello, " + "World"a la valeur "Hello, World". Dans d'autres langages, il existe un opérateur séparé, en particulier pour spécifier une conversion de type implicite en chaîne, par opposition à un comportement plus compliqué pour générique plus. Les exemples incluent .dans Edinburgh IMP , Perl et PHP, ..dans Lua et &dans Ada, AppleScript et Visual Basic. D'autres syntaxes existent, comme ||dans PL/I et Oracle Database SQL .

Dans quelques langages, notamment C, C++ et Python, il existe une concaténation de littéraux de chaîne , ce qui signifie que les littéraux de chaîne adjacents sont concaténés, sans aucun opérateur : "Hello, " "World"a la valeur "Hello, World". Dans d'autres langages, la concaténation de littéraux de chaîne avec un opérateur est évaluée au moment de la compilation, via le pliage constant , bien qu'il s'agisse souvent d'un détail d'implémentation du compilateur, plutôt que d'une fonctionnalité du langage.

Mise en œuvre

En programmation, la concaténation de chaînes se produit généralement au moment de l'exécution, car les valeurs de chaîne ne sont généralement connues qu'au moment de l'exécution. Cependant, dans le cas de chaînes littérales, les valeurs sont connues au moment de la compilation, et donc la concaténation de chaînes peuvent être effectuées au moment de la compilation, soit par concaténation de chaîne littérale ou par pliage constant .

Concaténation d'ensembles de chaînes

Dans la théorie du langage formel et la correspondance de motifs (y compris les expressions régulières ), l'opération de concaténation sur les chaînes est généralisée à une opération sur les ensembles de chaînes comme suit :

Pour deux ensembles de chaînes S 1 et S 2 , la concaténation S 1 S 2 se compose de toutes les chaînes de la forme vwv est une chaîne de S 1 et w est une chaîne de S 2 , ou formellement S 1 S 2 = { vw  : vS 1 , wS 2 } . De nombreux auteurs utilisent également la concaténation d'un ensemble de chaînes et d'une chaîne unique, et vice versa, qui sont définis de manière similaire par S 1 w = { vw  : vS 1 } et vS 2 = { vw  : wS 2 } . Dans ces définitions, la chaîne vw est la concaténation ordinaire des chaînes v et w telles que définies dans la section d'introduction.

Par exemple, si F = { a, b, c, d, e, f, g, h } , et R = { 1, 2, 3, 4, 5, 6, 7, 8 } , alors FR désigne l'ensemble de toutes les coordonnées de l' échiquier en notation algébrique , tandis que e R désigne l'ensemble de toutes les coordonnées du fichier des rois .

Dans ce contexte, les ensembles de chaînes sont souvent appelés langages formels. L'opérateur de concaténation est généralement exprimé par une simple juxtaposition (comme avec la multiplication ).

Propriétés algébriques

Les chaînes sur un alphabet, avec l'opération de concaténation, forment une structure algébrique associative avec l'élément d'identité la chaîne nulle - un monoïde libre .

Les ensembles de chaînes avec concaténation et alternance forment un demi - anneau , la concaténation (*) se répartissant sur l'alternance (+) ; 0 est l' ensemble vide et 1 l'ensemble constitué uniquement de la chaîne nulle.

Applications

Audio/téléphonie

Dans la programmation pour la téléphonie, la concaténation est utilisée pour fournir un retour audio dynamique à un utilisateur. Par exemple, dans une horloge parlante « heure du jour » , la concaténation est utilisée pour donner l'heure correcte en jouant les enregistrements appropriés concaténés ensemble. Par example:

  • "Au ton le temps sera"
  • "Huit"
  • "30"
  • "Cinq"
  • "et"
  • "Vingt"
  • "Cinq"
  • "Secondes"

Les enregistrements eux-mêmes existent séparément, mais les jouer l'un après l'autre fournit une phrase grammaticalement correcte à l'auditeur.

Cette technique est également utilisée dans les annonces de changement de numéro, les systèmes de messagerie vocale ou la plupart des applications de téléphonie qui fournissent un retour dynamique à l'appelant (par exemple, moviefone , tellme et autres).

La programmation de tout type de système de sonorisation informatisé peut également utiliser la concaténation pour des annonces publiques dynamiques (par exemple, des vols dans un aéroport). Le système archiverait les discours enregistrés de numéros, d'itinéraires ou de compagnies aériennes, de destinations, d'heures, etc. et les reproduirait dans un ordre spécifique pour produire une phrase grammaticalement correcte qui est annoncée dans l'ensemble de l'installation.

Théorie des bases de données

L'un des principes de la conception d'une base de données relationnelle est que les champs des tables de données doivent refléter une seule caractéristique du sujet de la table, ce qui signifie qu'ils ne doivent pas contenir de chaînes concaténées. Lorsque la concaténation est souhaitée dans un rapport, elle doit être fournie au moment de l'exécution du rapport. Par exemple, pour afficher l'adresse physique d'un certain client, les données peuvent inclure le numéro du bâtiment, le nom de la rue, le numéro de sous-unité du bâtiment, le nom de la ville, le nom de l'état/de la province, le code postal et le nom du pays, par exemple, "123 Fake St Apt 4, Boulder, CO 80302, USA", qui combine sept domaines. Cependant, la table de données clients ne doit pas utiliser un seul champ pour stocker cette chaîne concaténée ; plutôt, la concaténation des sept champs doit se produire lors de l'exécution du rapport. La raison de ces principes est que sans eux, la saisie et la mise à jour de gros volumes de données deviennent sujettes aux erreurs et demandent beaucoup de travail. La saisie séparée de la ville, de l'état, du code postal et de la nation permet la validation de la saisie des données (telle que la détection d'une abréviation d'état invalide). Ensuite, ces éléments séparés peuvent être utilisés pour trier ou indexer les enregistrements, tels que tous avec "Boulder" comme nom de ville.

Mathématiques récréatives

En mathématiques récréatives , de nombreux problèmes concernent les propriétés des nombres sous la concaténation de leurs nombres dans une base . Les exemples incluent les nombres premiers d'origine (les nombres premiers obtenus en factorisant à plusieurs reprises la concaténation croissante de facteurs premiers d'un nombre donné), les nombres de Smarandache-Wellin (les concaténations des premiers nombres premiers ) et les constantes de Champernowne et Copeland-Erdős (les nombres réels formés par les représentations décimales des nombres entiers positifs et des nombres premiers, respectivement).

Voir également

Les références