De nombreux langages de programmation utilisent la syntaxe a[i]
pour faire référence au i
'e élément d'un tableau, d'une séquence ou d'un vecteur a
- en particulier, C et Pascal (de la fin des années 1960 au début des années 1970) le font. En revanche, certaines langues antérieures, comme le Fortran (des années 1950), n'utilisent pas cette convention. De plus, j'ai étudié un peu les mathématiques, et les mathématiciens utilisent des crochets pour les intervalles et des indices pour, eh bien, les indices de matrice et de tableau (ou des parenthèses régulières si le tableau est considéré comme une fonction d'entiers non négatifs).
Donc, ma question est: où / comment / dans quel contexte ces crochets pour l'indexation des tableaux se sont-ils développés, et par qui?
Remarque: Pas du tout une dupe de cette question sur l'utilisation des accolades en C.
Réponses:
Le principal langage précurseur de C et Pascal était Algol . La première version de celui-ci était Algol 58 qui utilisait des crochets pour les déclarations et les références de tableaux.
La raison pour laquelle Algol a utilisé des crochets plutôt que, par exemple, des parenthèses était triple:
Notez que, contrairement à C, qui utilise principalement des tableaux pour indexer la mémoire, Algol a permis de spécifier les limites d'index inférieures et supérieures. Encore une fois, cela était conforme à son intention plus mathématique. À tel point, en fait, qu'Algol a été le langage de facto du pseudocode pendant de nombreuses années.
la source
[x]
été utilisé pour les classes d'équivalence, pas pour les positions d'indication dans les vecteurs ou les matrices.Ceci est une lecture intéressante: https://en.m.wikipedia.org/wiki/Bracket
Voici mes propres observations.
Les concepteurs de C ont pris grand soin d'adopter le sens des personnages et des constructions tels qu'ils étaient utilisés depuis des centaines d'années dans un langage écrit régulier. Et ce faisant, ils ont dû travailler avec le sous-ensemble assez limité de caractères ASCII. Dans la langue occidentale, davantage de caractères de regroupement sont utilisés dans le texte écrit, mais ceux-ci ne sont tout simplement pas convertis en ASCII.
En langage ordinaire, la signification des parenthèses fournit des informations secondaires sans interrompre le message principal. Cela a du sens lors de l'appel d'une procédure: le message principal est l'action à effectuer et les sous-informations sont les arguments.
Les accolades sont utilisées pour le regroupement. "Cette collection de mots va de pair, doit être distinguée des autres". Il est donc logique de les utiliser pour des blocs de code, des instructions composées.
Les crochets sont utilisés pour les insertions dans du texte qui ne faisaient pas partie de l'original, pour clarifier le texte d'origine et fournir un contexte. Ou pour indiquer une omission avec des points de suspension: [...]. "Elle [la reine] n'était pas amusée". En programmation informatique, il est un peu judicieux d'utiliser le support pour l'indexation des tableaux car il s'agit d'une sorte de contexte fourni. "Array? Quel tableau? Eh bien, spécifiquement cet élément." Mais même si la signification d'origine ne couvre pas entièrement l'utilisation dans un langage informatique, il n'y a pas trop d'autres options en ASCII.
Je dirais donc que c'est une combinaison de l'art antérieur et de ce qui était disponible à l'époque qui a conduit à l'utilisation de crochets pour l'indexation de tableaux.
[modifier à cause du commentaire d'Alex]
Selon cette source, ASCII a été introduit en 1963 et a obtenu l'approbation du gouvernement en 1968. Le développement du langage C n'a commencé qu'en 1969, selon ce wiki . Il semble donc probable que M. Ritchie ait gardé un œil sur cette nouvelle norme largement prise en charge appelée ASCII lors de la sélection de ses personnages.
Veuillez également consulter les autres réponses plaidant pour qu'Algol, "la mère de nombreuses langues", exerce une forte influence.
la source