ANNÉES 1950

IPL

Les ordinateurs, machines d'abord créées pour résoudre des équations mathématiques, allaient bientôt s'attaquer à un domaine différent : celui du traitement symbolique et de la résolution de problèmes complexes. C'est dans cette effervescence qu'a émergé Information Processing Language, famille de langages qui a tracé un sillon dans l'histoire de l'intelligence artificielle.

L'aventure d'IPL débute avec le rêve audacieux de construire un programme capable de prouver des théorèmes logiques. IPL-I, esquissé au début des années 1950, n'a jamais existé ailleurs que sur le papier. Cette ébauche constituait néanmoins une première tentative pour formaliser les mécanismes de manipulation symbolique indispensables à la démonstration automatique.

À la RAND Corporation se développèrent ensuite IPL-II et IPL-III, déployés sur l'ordinateur JOHNNIAC. Ces versions ont donné vie au programme Logic Theorist, une œuvre pionnière dans l'univers de l'intelligence artificielle. Ce programme démontrait des théorèmes par des méthodes heuristiques calquées sur la pensée humaine, rompant avec l'approche purement calculatoire des ordinateurs.

La migration d'IPL vers l'IBM 650 par une équipe du Carnegie Institute of Technology donna naissance à IPL-V, version achevée et influente de cette lignée. Pendant ce temps, IPL-IV tournait sur le JOHNNIAC pour des applications novatrices : un programme d'échecs et un système d'équilibrage de chaînes de production industrielle.

IPL-V marquait une rupture dans la conception des langages informatiques. Il apportait des notions comme la manipulation de listes et de structures de données évolutives. Le langage rendait possible la création et la modification dynamique des données durant l'exécution du programme, caractéristique rare à une époque où la mémoire restait généralement figée.

La grande force d'IPL résidait dans sa capacité à modéliser des tâches que les humains accomplissent sans pouvoir en décrire le cheminement. Jouer aux échecs, prendre des décisions commerciales ou démontrer des théorèmes mathématiques sont autant d'activités où l'expertise humaine repose sur des intuitions plutôt que sur des algorithmes définis. IPL fournissait un cadre pour transcrire ces comportements adaptatifs typiques de l'intelligence naturelle.

L'architecture d'IPL s'articulait autour de quelques principes fondamentaux. Le système employait des cellules pour stocker des mots IPL, formés de deux préfixes (P et Q) et de deux symboles (SYMB et LINK). Les symboles, régionaux ou locaux, offraient une représentation souple des données. Le langage a popularisé le concept de « liste », structure fondamentale pour organiser l'information de façon hiérarchique.

Une création remarquable d'IPL fut son système de « liste de description ». Ce mécanisme associait des informations descriptives à une liste, informations modifiables en cours d'exécution. Cette approche annonçait les concepts actuels de métadonnées et d'attributs d'objets que l'on retrouve dans la programmation moderne du XXIe siècle.

IPL intégrait aussi des fonctionnalités avancées de gestion mémoire, notamment avec sa « liste d'espace disponible » qui automatisait l'allocation et la libération des ressources. Cette méthode affranchissait les développeurs des contraintes de gestion manuelle, leur laissant davantage d'énergie pour la logique algorithmique.

Le langage proposait environ 150 processus fondamentaux couvrant un large spectre d'opérations : manipulation de listes, calculs arithmétiques, gestion des entrées-sorties, et traitement de structures complexes. Un dispositif élaboré de « générateurs » rendait possible l'exécution d'opérations répétitives avec élégance.

IPL a servi de socle à diverses applications dans le champ de l'intelligence artificielle naissante. Des programmes d'apprentissage de discrimination, de choix binaires et de démonstration de théorèmes ont vu le jour grâce à ce langage. Ces créations ont prouvé l'aptitude d'IPL à soutenir des applications sophistiquées de traitement symbolique.

IPL-VI, ultime version de cette famille avec une vision ambitieuse, proposait une architecture matérielle conçue spécifiquement pour exécuter directement ce langage, sans passer par une couche d'interprétation logicielle. Cette démarche visait à dépasser les limites de performance inhérentes à la nature interprétée des versions antérieures sur des machines conventionnelles.

IPL a inspiré la création d'autres systèmes comme LISP, le traitement de listes en FORTRAN, ou COMIT. Ces langages ont prolongé l'exploration des voies ouvertes par IPL dans le domaine du traitement symbolique et de l'intelligence artificielle. Malgré ses faiblesses en termes de rapidité, notamment pour les calculs numériques traditionnels, il a montré que les bénéfices d'un système de haut niveau compensaient largement ses coûts en ressources, tout particulièrement pour des applications complexes nécessitant une gestion fine des données et des processus.