Concaténation
Informellement, en programmation, on appelle la concaténation de deux chaînes de caractères, la chaîne formée de ces deux chaînes mises bout à bout.
Exemple :
- La concaténation de « Hello » et « world! » est « Hello world! »
Plus formellement, dans le contexte théorique des langages formels :
Si on se donne un ensemble fini Σ, et que l'on appelle
l'ensemble des séquences d'éléments de Σ, la concaténation est la loi de composition interne sur
qui aux séquences (a1,a2...am) et (b1,b2...bn), où m et n sont des entiers naturels, associe la séquence (a1,a2...am,b1,b2...bn).
Cette opération est associative et a un élément neutre qui est la séquence vide, donc elle dote
d'une structure algébrique de monoïde. De plus, ce monoïde, ainsi que tous les monoïdes isomorphes à celui-ci est qualifié de libre (la définition de monoïde libre découle de celle de concaténation).
En généralisant, on introduira la terminologie suivante :
Si on se donne un monoïde libre, on appelera concaténation (notée souvent par un point
, ou par rien) sa loi de composition interne, mot vide (noté ε) son élément neutre, mots ou chaînes de caractères ses éléments, alphabet (noté A ou Σ) son ensemble de générateurs libres, symboles, lettres ou caractères les éléments de l'alphabet. Dans cette terminologie, on appellera ce monoïde le langage des mots sur l'alphabet Σ (ou A ...), que l'on notera
(ou
).
La concaténation est une opération sur les mots, mais peut être étendue aux langages (sous-ensembles du monoïde). Ainsi, si
alors leur concaténation
est l'ensemble
, c'est-à-dire l'ensemble des mots qui sont la concaténation d'un mot de L1 et d'un mot de L2.
Cette extension de la concaténation est l'une des trois opérations de base permettant de construire des langages réguliers, c'est-à-dire un des trois opérateurs de base que l'on peut rencontrer dans une expression régulière. Les deux autres opérations sont l'union ensembliste et la fermeture de Kleene.
