Débuter avec la chaîne

Chaînes

Une chaîne est une séquence de caractères littéraux. À ce jour, les chaînes sont prises en charge par tous les langages de programmation modernes1, mais il n’y a pas de consensus entre les concepteurs de langages sur la manière dont les chaînes doivent être classées. En ce qui concerne la conception du langage de programmation, il y a deux préoccupations principales à prendre en considération.

  1. Une chaîne doit-elle être traitée comme une valeur primitive ou composée ? 2. Quelles opérations de chaîne doivent être fournies par le langage lui-même ?2

En faisant d’une chaîne une valeur primitive, les opérations de chaîne fournies par le langage sont toutes intégrées ; et ne peut pas être défini dans la langue elle-même. Cela permet certaines optimisations au niveau du compilateur — spécifiquement en ce qui concerne la disposition de la mémoire et la réutilisation des chaînes à l’aide d’un pool de chaînes. Le compromis réside dans l’impossibilité d’utiliser des remplacements de suppression pour les opérations de chaîne, et de telles fonctions devraient être appelées à l’aide d’appels de fonction normaux, tandis que la syntaxe d’utilisation des opérations intégrées est généralement très différente. La conséquence étant que si et quand des algorithmes plus efficaces sont découverts, on ne peut pas simplement changer la bibliothèque de chaînes que l’on utilise. Un exemple artificiel étant la recherche de sous-chaînes dans le cadre de l’ensemble de fonctionnalités de base avant le développement de l’algorithme de recherche de chaînes Boyer – Moore.

Inversement, en définissant une chaîne comme une valeur composite telle qu’un tableau de caractères, toutes les opérations habituelles sur les tableaux deviennent automatiquement applicables aux chaînes. Cependant, toutes les chaînes du langage sont de longueur fixe.3

En fin de compte, une autre approche consiste à représenter les chaînes sous la forme d’une liste de caractères qui, comme pour les tableaux, permet à la représentation d’hériter de toutes les opérations de liste.

1 Gardez les plus ésotériques comme Piet 2 Les langages proposent généralement des comparaisons de chaînes, principalement l’égalité, la concaténation de chaînes avec d’autres chaînes, la substitution de caractères uniques et de sous-chaînes et le tri lexographique des chaînes. 3 Généralement