Repères sur l'Histoire du Langage LISP

1956 : The Dartmouth Summer Research Project on Artificial Intelligence. Naissance d'une nouvelle discipline : l'Intelligence Artificielle [IA]. Insuffisances des capacités de traitement symbolique de FORTRAN [FORmula TRANslator], et premières idées sur un langage général de traitement de listes, par John McCarthy [liste <==> arbre binaire]. Fusion avec les idées issues du lambda-calcul d'Alonzo Church [1941] : rôle fondamental des fonctions récursives dans la "théorie de la programmation".

LISTES + FONCTIONS -----> LISP [LISt Processor]...

John McCarthy    John McCarthy

1958 : L'implémentation débute et produit LISP 1.5 qui va durer jusqu'à la fin des années 60.

1970-80 : Domination des dialectes MACLISP et INTERLISP. MACLISP est le dialecte du MIT [le célèbre "Massachusetts Institute of Technology" qui inventa plus tard - entre autres - le système X-Windows]. Compilateur arithmétique très efficace pour les travaux en robotique et en vision [presque aussi rapide que FORTRAN]. Guy Steele est engagé à 17 ans pour maintenir MACLISP au MIT. Epoque des hackers. MACSYMA est un énorme système de calcul formel en MACLISP. Les entiers en précision infinie sont rajoutés a MACLISP pour les besoins de Macsyma en 1971. INTERLISP est né sur les bases des idées de Teitleman [1966] sur la symbiose entre l'homme et l'ordinateur. L'ergonomie commence en effet à jouer un rôle important. Apparition des éditeurs structurés ayant une connaissance approfondie de la syntaxe du langage. Correcteurs orthographiques, systèmes de mise au point. Le centre de recherche Xerox devient le moteur d'INTERLISP : construction de machines LISP à l'architecture spécialisée, munies des premiers systèmes de fenêtrage, avec une souris [concepts popularisés par la suite par la firme Apple avec son Macintosh, puis par Microsoft avec Windows].

D'autres machines LISP apparaissent, notamment au MIT [1974-78]. Création de firmes spécialisées dans la construction de machines LISP [Lambda, Symbolics, Texas Instruments...] pour remédier à la lenteur relative de LISP sur les architectures classiques. Les nouveaux ordinateurs rapides [notamment les processeurs RISC [Reduced Instruction Set Computer]] provoqueront un effondrement du marché des machines LISP à la fin des années 80.

Cette époque voit aussi l'apparition d'un éditeur de texte dont le langage interne est LISP et qui deviendra l'éditeur définitivement choisi par les programmeurs : EMACS, créé vers 1974 par un autre hacker du MIT, Richard Stallman [alias RMS].

Dans les mêmes années, IBM avait ses LISP360 et LISP370 qui serviront au développement initial du système maison de calcul formel SCRATCHPAD.

SCHEME apparaît au MIT vers 1975 comme résultat des efforts de Gerald Sussman et Guy Steele pour comprendre la théorie des "acteurs" de Carl Hewitt. Dans le modèle de ce dernier, le calcul était distribué au sein d'une communauté d'agents capables de recevoir et d'envoyer des messages. Les interactions entre acteurs étaient modélisées par des "continuations " : pour calculer la factorielle de 5, on envoie à l'acteur fac le nombre 5 ainsi qu'un autre acteur qui saura comment "continuer" avec la valeur 120 obtenue. Ce modèle sera repris plus tard sur le plan cognitif par Marvin Minsky dans son livre "La Société de l'Esprit" [chez InterEditions]. Les premiers langages de Sussman et Steele se nommèrent PLANNER et CONNIVER. Le suivant devait être SCHEMER mais l'O.S. de l'époque n'autorisait que 6 lettres... En élaborant ce langage, ils découvrirent la puissance du concept de LAMBDA-fonction, et notèrent que les fonctions pures suffisaient à modéliser les acteurs et les transmissions de messages. Le langage final retenu fut minimal tout en permettant d'implémenter la plupart des paradigmes connus en programmation, notamment les structures de contrôle [goto, coroutines, etc: enseigné en 2ème cycle d'Informatique]. Voir les transparents d'une conférence de Guy Steele.

En France, Patrick Greussay développe VLISP à l'Université de Vincennes vers 1977 et les premières équipes LISP apparaissent. Jérôme Chailloux le fait évoluer vers Le_Lisp, diffusé par l'INRIA avec de beaux environnements de programmation.

1980 : Beaucoup trop de dialectes LISP, en général incompatibles.

1981 : Echec des tentatives hégémoniques d'INTERLISP contre MACLISP. Un groupe de travail se réunit et décide de bâtir les spécifications d'un COMMON LISP pouvant servir de standard présentable notamment aux bailleurs de fond, comme l'armée américaine et l'ARPA [Advanced Research Project Agency]. Le réseau ARPANET servit de support et ce fut la première normalisation d'un langage par échanges de courriers électroniques...

1985 : Publication du livre d'Abelson & Sussman, Structure and Interpretation of Computer Programs, support du cours de 1ère année pour les étudiants du MIT. Le langage support est SCHEME, dont la diffusion dans l'enseignement commence. Le livre est traduit en francais en 1989 Structure et Interprétation des Programmes Informatiques.

1987 : Création d'un Comité ISO [International Standard Organization] de normalisation de LISP. Les deux principaux rivaux sont COMMON LISP et EU-LISP [tentative européenne plus ou moins issue du courant Le_Lisp].

1997 : GNU [distributeur d'Emacs] choisit SCHEME comme langage d'extension dans les applications [projet GUILE].


Repères sur l'Histoire de l'Intelligence Artificielle

1956 : "The Dartmouth Summer Research Project on Artificial Intelligence" [John McCarthy, Marvin Minsky & al.]. Apparition de la terminologie "IA". L'IA est un domaine de la recherche dont le propos est de faire réaliser par les machines des tâches qui - si elles étaient faites par les humains - demanderaient de l'intelligence [hum, un peu flou...] :

Science des ordinateurs + Science cognitive -----> I.A.

Le premier programme d'IA : "Logic Theorist" [Newell, Shaw & Simon] qui démontre automatiquement des théorèmes dans la Logique des Propositions.

1958 : Le "Perceptron" de Rosenblatt. Les premières modélisations de réseaux de neurones artificiels. Un tel réseau de neurones est capable d'apprendre à reconnaître des objets en réagissant à des stimuli extérieurs. Cette mine d'or sera "cassée" théoriquement un peu plus tard par Minsky et Papert , qui montrent les limitations mathématiques des perceptrons.

1959 : "Checkers", un programme de Samuel qui joue aux dames et de plus "apprend" : il joue de mieux en mieux et adapte sa stratégie à l'aide d'une fonction d'evaluation qui associe à chaque position une valeur numérique montrant son intérêt. La fonction d'évaluation de Samuel évolue avec l'expérience du programme ! L'APPRENTISSAGE reste le domaine fondamental de l'IA.

1964 : Publication du rapport ALPAC sur les échecs de la traduction automatique des langues naturelles. Les financements de l'IA sont revus à la baisse...

1967 : Le premier programme d'échecs sur ordinateur ayant des performances acceptables, par un hacker LISP du MIT : Richard Greenblatt.

1970 : SHRDLU de Terry Winograd, un programme de dialogue en langue naturelle pour demander à un robot de manipuler des blocs sur une table. Renaissance des travaux sur le langage naturel.

1974 : Naissance du premier système expert MYCIN, destiné au diagnostic des maladies infectieuses du sang. Un système expert [SE] consiste en un ensemble de "règles" si-alors du type :

SI la coloration de l'organisme est gram positif
     ET La morphologie de l'organisme est cocci
     ET Le mode de développement est en colonies
ALORS il existe une evidence suggestive (probabilité 0.7) que l'identité de l'organisme soit staphyllocoque.

Un SE contient des centaines de règles comme la précédente dans sa base de connaissances [MYCIN : 200 règles en 1974, 500 actuellement]. De plus, un MOTEUR va balayer les règles comme bon lui semble pour produire une conclusion. Intérêt accessoire : il peut fournir des explications sur son diagnostic : "pourquoi penses-tu que... ?" Intérêt évident pour la formation. Naissance d'une nouvelle spécialité : l'ingénieur cogniticien, chargé de l'extraction du savoir d'un expert humain [parfois des Prix Nobel] sous la forme de règles.

1982 : Renaissance de l'intérêt pour les réseaux de neurones avec les travaux d'Hopfield sur les machines de Boltzmann et les modèles théoriques de calculs basés sur la thermodynamique et les puits de potentiel. Qui a dit que la physique ne servait pas aux informaticiens ?...

1992 : Travaux de John Koza [MIT] sur la "Programmation Génétique". L'idee consiste à appliquer le paradigme génétique aux programmes eux-mêmes, naturellement munis d'une structure d'arbre, au moins en LISP.

Bibliographie [hautement non exhaustive]

Ah, si, une dernière chose. Une belle série de 5 vidéos historiques sur YouTube, The Machine that Changed the World. Rien à voir avec l'I.A. mais quelques belles séquences difficiles à trouver...