LES RACINES DE LISP
OriginalMai 2001
(J'ai écrit cet article pour m'aider à comprendre exactement ce que McCarthy a découvert. Vous n'avez pas besoin de connaître ces choses pour programmer en Lisp, mais cela devrait être utile à quiconque veut comprendre l'essence de Lisp - à la fois dans le sens de son origine et de son noyau sémantique. Le fait qu'il ait un tel noyau est l'une des caractéristiques distinctives de Lisp, et la raison pour laquelle, contrairement aux autres langages, Lisp a des dialectes.)
En 1960, John McCarthy a publié un article remarquable dans lequel il a fait pour la programmation quelque chose comme ce qu'Euclide a fait pour la géométrie. Il a montré comment, étant donné une poignée d'opérateurs simples et une notation pour les fonctions, vous pouvez construire un langage de programmation complet. Il a appelé ce langage Lisp, pour "List Processing", parce que l'une de ses idées clés était d'utiliser un simple structure de données appelée liste pour les deux code et données.
Il vaut la peine de comprendre ce que McCarthy a découvert, non pas seulement comme un jalon dans l'histoire des ordinateurs, mais comme un modèle de ce que la programmation tend à devenir dans notre propre temps. Il me semble qu'il y a eu deux modèles de programmation vraiment propres et cohérents jusqu'à présent : le modèle C et le modèle Lisp. Ces deux semblent des points culminants, avec des basses terres marécageuses entre eux. Au fur et à mesure que les ordinateurs sont devenus plus puissants, les nouveaux langages développés ont été en mouvement constant vers le modèle Lisp. Une recette populaire pour les nouveaux langages de programmation au cours des 20 dernières années a été de prendre le modèle C de calcul et d'y ajouter de manière progressive, des parties prises du modèle Lisp, comme le typage à l'exécution et la récupération de la mémoire.
Dans cet article, je vais essayer d'expliquer dans le termes les plus simples possibles ce que McCarthy a découvert. Le but n'est pas seulement d'apprendre un résultat théorique intéressant que quelqu'un a trouvé il y a quarante ans, mais pour montrer où les langues se dirigent. La chose inhabituelle à propos de Lisp - en fait, la définition qualité de Lisp - est qu'il peut être écrit en lui-même. Pour comprendre ce que McCarthy voulait dire par là, nous allons retracer ses pas, avec sa mathématique notation traduite en code Common Lisp en cours d'exécution.