☰ Menu

07.10.2026 · Signal Titans Editorial

Au-delà de la boule d’impression : comment la notation de Kenneth Iverson est devenue un langage interactif

Comment la notation manuscrite créée en 1957 par Kenneth Iverson à Harvard a évolué pour devenir APL\360, un environnement interactif conçu en assembleur.

Une sculpture géométrique translucide composée de symboles mathématiques et de plans matriciels en verre dépoli et acrylique ambré sur un bureau en noyer foncé.

En 1957, le professeur Kenneth E. Iverson de l'université Harvard conçut une nouvelle notation mathématique — non pas pour programmer les grands systèmes en silicium, mais pour aider ses étudiants à synthétiser et à transmettre des algorithmes complexes. À une époque où l'informatique reposait sur des cartes perforées et de verbeuses instructions machine, la méthode sur papier d'Iverson se concentrait exclusivement sur le traitement de tableaux et la représentation concise de matrices. Pensée uniquement pour la lisibilité humaine, cette notation servait d'outil de réflexion indépendant de tout code informatique exécutable.

Du crayon mathématique à la logique machine

IBM recruta Iverson en 1960 pour affiner sa notation algorithmique aux côtés d'Adin Falkoff et d'une petite équipe. Pendant cinq ans, les symboles restèrent un support écrit d'analyse conceptuelle plutôt qu'un logiciel. La rigueur descriptive du système se révéla si précise qu'en 1965, Falkoff, Iverson et Ed Sussenguth publièrent un article dans l'IBM Systems Journal pour définir formellement l'architecture du jeu d'instructions du grand système IBM System/360. Bien avant l'apparition d'un compilateur ou d'un interpréteur exécutable, la notation servit ainsi de plan de référence définitif pour l'une des architectures informatiques les plus marquantes de l'histoire.

Les prototypes expérimentaux sur grands systèmes

Le passage du papier imprimé à la logique machine s'amorça en 1965, lorsque Larry Breed et Philip Abrams écrivirent un interpréteur par lots en FORTRAN sur un grand système IBM 7090. Peu après, Breed s'associa à Roger Moore pour concevoir un prototype interactif expérimental nommé IVSYS sur un IBM 7093 modifié, fonctionnant sous le système en temps partagé TSM. Cet environnement éphémère offrit à l'équipe d'Iverson un premier aperçu d'une notation exécutable en direct. Au printemps 1966, Adin Falkoff forgea le nom APL, abréviation du titre de l'ouvrage publié par Iverson en 1962, « A Programming Language », alors que l'équipe se préparait à concevoir une mise en œuvre permanente.

La création du moteur interactif pour le System/360

Afin de mettre le langage à la disposition des utilisateurs, l'équipe d'implémentation composée de Larry Breed, Dick Lathwell et Roger Moore contourna entièrement les systèmes d'exploitation hôtes. Développé directement en langage assembleur pour le System/360, APL\360 fit ses débuts en interne chez IBM en novembre 1966, avant d'être distribué au public en août 1968 en tant que programme de type III. En contrôlant directement le matériel sous-jacent, le moteur d'APL fonctionnait comme un système d'exploitation complet en temps partagé et un gestionnaire de fichiers. Il gérait les espaces de travail actifs, la permutation de mémoire (swapping) et les commandes de contrôle telles que )LOAD et )SAVE pour jusqu'à 50 utilisateurs simultanés sur terminal.

Claviers, surimpression et syntaxe non conventionnelle

L'adaptation de la notation au matériel exigea des innovations physiques. IBM fabriqua des boules d'impression spécifiques pour ses terminaux 1050 et 2741 en s'appuyant sur le mécanisme de la machine à écrire Selectric afin de restituer les symboles mathématiques spéciaux. L'espace des touches étant limité, les utilisateurs généraient des primitives complexes par surimpression de caractères : il fallait par exemple frapper un delta, effectuer un retour arrière et ajouter une barre verticale pour obtenir le symbole de tri ascendant ⍋. Sur le plan syntaxique, les expressions s'évaluaient strictement de droite à gauche, sans priorité d'opérateurs traditionnelle, si bien que la saisie de 2×4+3 produisait 14, tandis que les opérateurs de réduction comme +/ éliminaient le besoin de boucles explicites.

En transformant l'algèbre matricielle en un environnement interactif immédiat, APL a fait découvrir l'exécution algorithmique directe et en temps réel à toute une génération de programmeurs habitués aux cartes perforées. Enraciné dans des terminaux dédiés et un moteur en temps partagé écrit en assembleur, le projet a démontré que des opérations mathématiques de haut niveau pouvaient s'exécuter de manière interactive sur des grands systèmes partagés, façonnant durablement les interactions entre l'humain et la machine.

Illustration éditoriale générée par IA ; ce n’est pas une photographie documentaire.

Source: The APL Programming Language Source Code