73 votes

L'histoire derrière la définition d'une "chaîne"

Je n'ai jamais pensé jusqu'à ce que récemment, mais je ne suis pas sûr pourquoi nous appelons les cordes strings. Je suis une .NET programmeur, mais je pense que le concept de chaînes de caractères présentes dans presque tous les langages de programmation.

En dehors de la programmation, je ne crois pas que j'ai entendu le mot string utilisé pour décrire des mots ou des lettres. Un rapide Google de "Définir: string' donne un tas de définitions qui n'ont rien à voir avec le concept de lettres, de mots, ou quoi que ce soit de la nature associée à la programmation.

Ma conjecture est que, de retour dans la journée, les chaînes n'étaient en fait que des tableaux de caractères d'une longueur particulière, souvent avec un signe de séparation à la fin. Mais, je ne vois pas une transition naturelle de 'tableau de caractères' string.

Quelqu'un peut-il offrir un aperçu de pourquoi nous appelons les cordes strings?

38voto

cloudymusic Points 1652

Mon idée a toujours été que la programmation terme provient de la définition suivante du mot "chaîne" (Merriam-Webster):

(1): une série de choses disposées dans ou comme si, dans une ligne <une chaîne de voitures> <une chaîne de noms>

(2): une séquence d'éléments de même nature (sous forme de bits, des personnages ou de mots)

Depuis une chaîne de caractères dans la programmation est simplement une séquence ordonnée de caractères, en se référant à une "chaîne de caractères" (ou simplement "chaîne") semble être la plus probable de l'origine.

32voto

Paul Sonier Points 25528

À partir de cette référence:

(1971), l'OED (p. 3097) cite un 1891 Siècle Dictionnaire sur une source dans le Milwaukee Sentinel de 11 Janv. 1898 (section 3, p. 1) à l'effet que c'est un compositeur du terme. Les imprimantes serait-coller le texte qu'ils avaient généré dans une longue bande de des personnages. (On peut supposer qu'ils ont été payé par le pied, et non pas par la parole!) La citation dit qu'il n'était pas rare pour les compositeurs de créer plus de 1500 (personnages?) par heure.

13voto

starblue Points 29696

À partir de la recherche par le biais de l'ACM de la bibliographie, il semble que le mot chaîne a acquis son sens en informatique dans les années 1960. Au début d'une chaîne de caractères est un grand type de séquence ou d'une liste, par exemple, d'Un langage de commande pour la manipulation des chaînes de symboles à partir de 1958.

Cet article mentionne explicitement les "chaînes de caractères" en 1964.

Malheureusement, je ne peux pas accéder à l'intégralité des textes, qui sont à l'origine d'un poste de péage.

11voto

Paul Callahan Points 21

J'avais deviné que la "chaîne" était utilisée par les mathématiciens longtemps avant son adoption dans les langages de programmation. Machines de Turing fonctionner efficacement sur les cordes. Turing ne peut pas avoir utilisé le terme, mais il est utilisé partout dans les automates des manuels scolaires, depuis des décennies.

La référence la plus ancienne que j'ai pu trouver était un fragment dans Google recherche de livres de 1944, l'article "Récursivement énumérable ensembles de nombres entiers positifs et leurs problèmes de décision" par logicien Emil Post dans le Bulletin de l'AMS. Heureusement, AMS fournit en ligne des archives des articles complets en téléchargement gratuit. Voici un lien: http://www.ams.org/journals/bull/1944-50-05/S0002-9904-1944-08111-1/S0002-9904-1944-08111-1.pdf

Je pense qu'il y a peu de doute qu'il est à l'aide de "string" dans le sens classique du terme utilisé en informatique. P. 286 "Pour le de travail, nous en- troduce la lettre b, et de considérer "chaînes" de 1 et b tels que 11b1bb1. Une opération sur ces chaînes comme "b1bP produit P1bb1" nous terme un fonctionnement normal. Cette opération normale est ap- applicable uniquement pour les chaînes de caractères commençant avec b1b, et les dérivés de chaîne est ensuite obtenu à partir de la chaîne donnée en enlevant d'abord la première b1b, et puis, la clouant sur 1bb1 à la fin. Ainsi b1bb devient b1bb1."

7voto

Jon Skeet Points 692016

Je suppose que c'est parce que string signifiait à l'origine juste une séquence de valeurs de données: "je vais simplement les chaîner ensemble" etc. Ces valeurs ne doivent pas nécessairement être des caractères. Une utilisation très courante de ce concept général s'est avérée être une séquence de caractères, qui a pris le sens du sens général du mot.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X