web-dev-qa-db-fra.com

Etymologie de "chaîne"

Il est donc évident qu'une série de choses est une séquence de choses, et donc une séquence de caractères/octets/etc. pourrait aussi bien être appelé une chaîne. Mais qui les ont appelés pour la première fois des chaînes? Et quand? Et dans quel contexte qu'il a coincé? Je me suis toujours demandé à ce sujet.

58
sclv

Pouvons-nous avoir une vraie citation avant la référence de Hugo de 1963? Oui. John McCarthy a utilisé le mot "chaîne" dans fonctions récursives des expressions symboliques et de leur calcul par machine, partie I , à partir d'avril 1960.

Pour les symboles atomiques, nous utiliserons des chaînes de lettres et de chiffres de la latine capital ...

mais plus utilement pour cette question, une référence à une chaîne en tant que type de données:

Toute chaîne de caractères admis [est] une expression L.

Ce n'est pas un excellent exemple. En disant "une chaîne de caractères", McCarthy n'utilise pas "String" dans les programmeurs Spécialisés Sense signifie aujourd'hui. Vous pouvez facilement dire "une chaîne" à un Java programmeur et ils sauront que la partie "Personnements" est implicite: l'utilisation de McCarthy ne démontre pas cette fonctionnalité. Essayons de repousser dans les années 1950, voir si McCarthy la jouait de sécurité ou si le terme n'existait pas véritablement existait alors. Lisp ne va probablement pas aider grand chose ici, car il est basé sur un calcul mathématique afin que les fonctions de cordes de McCarthy aient été la première Application de l'idée de traitement de la chaîne.

Un système important de traitement des cordes des années 1960 était de 1964 Snobol, une langue de manipulation de chaîne . Cela cite le papier de McCarthy ci-dessus, mais discute également de comit et de SCL. Le travail qu'ils citent sur SCL sont inédites: une impasse malheureuse.

Comit est plus facile à suivre. L'art de la programmation informatique (volume 1, troisième édition, p.461) nous dit que V. H. Yngve a écrit un article de CaCM de 1963 sur celui-ci. Mais je cherche le le plus tôt Utilisation de "String", je vais donc faire une recherche d'auteur de publications antérieures.

Le premier que je peux trouver, c'est langage de programmation pour la traduction mécanique , à partir de juillet 1958. Cela ne contient qu'une utilisation du mot "chaîne":

Chaque chaîne de lettres continue entre les marques de ponctuation ou les espaces est levée dans le dictionnaire.

Encore une fois, cette utilisation est comme McCarthy: ce n'est pas une preuve pour "chaîne" utilisé dans son sens actuel. En regardant le papier en détail, nous voyons que la structure de données est une "ligne" sur une carte (permettant de continuer à des "lignes" plus longues).

Ok, nous allons avancer dans l'histoire de la comité et voir ce que nous pouvons obtenir. La première référence utile est le système comit pour la traduction mécanique , de la procédure d'une conférence de juin 1959.

Si nous voulons remplacer D SIN (F) par COS (F) D (F), lorsque F est sans restriction et peut être une séquence arbitraire de constituants, nous utilisons la notation $ pour supporter cette chaîne.

Cela semble plus semblable à la façon dont nous l'utilisons aujourd'hui: "String" stands seuls et comme bonus a un symbole spécial reconnaissable: le signe dollar est toujours utilisé dans certaines saveurs de base pour signifier une variable de chaîne.

De loin ce temps, le mot "chaîne" apparaît également plusieurs fois dans ne langue de commande pour la manipulation des chaînes de symboles par Perlis et Smith de la procédure d'ACM "58 et une fois dans la part 709 Système: Mise en œuvre de la machine de programmation symbolique par Boehm et en acier.

Recherche dans la bibliothèque numérique ACM pour 'String' au début des années 1960, 960 résultats, y compris des titres tels que "String Manipulation in Algol", "Manipulation des chaînes dans la nouvelle langue" et "Technique de stockage de type liste de type liste d'informations sur les informations alphanumériques". Il semble que l'idée soit enracinée à ce moment-là.

Je dirais que "String" dans son Science Science Sense comme une liste ordonnée de caractères est devenue commune sur deux ans environ 1960. Avant cela, les auteurs comme Yngwe et McCarthy pouvaient dire "String of Personnages" et être sûr qu'ils étaient compris, mais ne pouvait pas utiliser de "chaîne" comme mot nu dans le sens qu'il est utilisé aujourd'hui.

Le sténographie a probablement été introduit au tableau principal du papier Perlis et Smith. Il n'a pas été largement cité, mais une citation importante est augmente syntaxique et sémantique à Algol par Joseph W. Smith en avril 1960 (dans le même numéro de CACM que la description de la LISP de McCarthy). De ce papier:

Le but de cet article est de proposer un ensemble d'augmentations syntaxiques et sémantiques à Algol. Les extensions proposées sont conçues pour faciliter la description de la manipulation "chaîne" dans cette langue; Ils ne constituent pas une langue globale pour la manipulation des symboles.

Pour moi, cela constitue une preuve de "chaîne" qui signifie un type de données de calcul symbolique étant affirmée dans le lexique académique et, surtout introduit dans les outils utilisés pour le calcul commercial.

Incidemment, Langues de programmation: Histoire et Future par Jean Sammet (1972) suggère que la comité et le snobol étaient les progéniteurs de la manipulation des chaînes, alors je suis assez confiant qu'il n'y aura pas d'exemples antérieurs.

47
user4051

Pas une réponse complète, mais l'utilisation de la chaîne pour signifier "un certain nombre d'objets arrangés dans une ligne" était déjà autour de la fin des années 1400. source

C'est essentiellement la même utilisation.

14
Peter Taylor

La référence la plus ancienne que je pouvais trouver dans l'informatique est de mars 1963 's météore: un interprète LISP pour les transformations de chaînes par Daniel G. Bobrow chez Ai Labs de Mit.

Le Oxford English Dictionnaire a un exemple de calcul antérieur à partir d'un 1956 numéro du Journal de l'Association Pour l'informatique de machines:

Les zones sont réservées pour la navette des chaînes de champs de contrôle à l'arrière jusqu'à l'obtention d'une séquence complètement triée.

5
Hugo