Question assez simple, mais quelque chose que je n'ai pas pu découvrir. Qui a été la première personne à décrire l'idée d'un pointeur? Le concept abstrait lui-même?
Question assez simple, mais quelque chose que je n'ai pas pu découvrir. Qui a été la première personne à décrire l'idée d'un pointeur? Le concept abstrait lui-même?
Réponses:
Bud Lawson a reçu le Computer Pioneer Award de l'IEEE il ya quelques années pour avoir inventé la variable pointeur en 1964.
Les pointeurs sont en réalité du stockage adressé par le contenu d'un registre. En tant que tels, tous les langages d'assembleur implémentent cela d'une manière et, avant cela, tout le code machine codé en dur l'a implémenté.
Il y aura un argument quant au premier ordinateur qui a implémenté cela. Autant que je sache, le système à petite échelle de l'Université Manchestern a été le premier à inclure un stockage adressé par des registres contrôlés par programme. Il a peut-être été précédé par le système ENIAC, mais il avait si peu de stockage au point de faire du stockage adressable un point discutable.
Les pointeurs sont plus largement des références. La première langue à avoir quelque chose comme ça était ALGOL 60 qui pouvait appeler par son nom. Cette réponse sur SO entre dans les détails. PL / J'avais des pointeurs comme BCPL, ce qui signifie que CPL en avait probablement aussi, même si je n'en ai trouvé aucune preuve. CPL est très difficile à concrétiser.
Pour répondre plus directement à votre question sur le "qui", DW Barron, Christopher Strachey ou Martin Richards ont probablement inventé le terme "pointeur".
Il est difficile de deviner exactement qui les a créés, mais les registres d'index de l'IBM 704 étaient probablement la première implémentation. Du point de vue du langage de programmation, il aurait donc sans aucun doute été le langage d'assemblage du 704.
Apparemment, il a fallu quelques années après que les langages de programmation de niveau supérieur aient été conçus pour tirer parti de cette innovation, mais à ce moment-là, la majeure partie de l'invention a été faite, et cela s'est principalement résolu à choisir des noms, des notations, etc. pour décrire ce que le matériel prise en charge.
Les pointeurs en tant que concept de base sont utilisés dans "l'adressage indirect", une fonction sur la plupart des CPU remontant au moins au 6502.
Commodore a utilisé le "kernal" sur ses ordinateurs VIC 20, C64 et C128. un ensemble fixe de logiciels d'adresse pourrait appeler qui serait ensuite redirigé vers le code actuel. Ils pourraient alors modifier le système d'exploitation sans casser le logiciel existant.
Je pense que le 8080 et le Z80 avaient également une adresse indirecte, mais je ne suis pas certain et je ne m'en souviens pas dans le 8008.
Eh bien - La première fois qu'une syntaxe et une sémantique concrètes ont été développées pour les variables de pointeur, c'était pour le langage de programmation PL / I en 1964.
Le papier séminal à ce sujet est paru en 1967 dans ACM Communications en 1967.