Présentation de Common Lisp

Common Lisp, abrégé en CL, est la dialecte la plus mature et complète de la famille Lisp. Elle est considérée comme l'ancienne école Lisp, puisque la langue a été standardisée en 1994 avec une spécification formelle ANSI. Grâce à cette standardisation, il existe plusieurs implémentations de Common Lisp ciblant différentes plateformes et cas d'utilisation.

Fonctionnement de Common Lisp

L'implémentation la plus célèbre est SBCL, qui compile directement en code natif. Elle est rapide, open-source et compatible avec les matériels modernes. Avec SBCL, du code Common Lisp bien écrit peut atteindre des performances comparables à celles de C et Rust. Puisque SBCL optimise fortement, elle compile un peu plus lentement que d'autres implémentations, mais génère certains des codes les plus rapides de la famille Lisp.

COMPILE, LOAD, EVAL, COMPILE-FILE

Ces fonctions permettent de contrôler la compilation et l'évaluation depuis la langue elle-même. Common Lisp propose également DISASSEMBLE, qui permet d'inspecter le code machine généré pour une fonction compilée.

Implications et limites

Common Lisp a un système de condition et de redémarrage, qui est l'un des moyens les plus puissants pour déboguer et inspecter les programmes. Si une condition se produit pendant l'exécution, le processus Lisp peut s'arrêter et laisser inspecter l'état du programme et de ses variables à ce moment-là. Vous pouvez alors choisir de redémarrer le programme et peut-être réessayer l'opération, ou ignorer la condition et continuer l'exécution.

Common Lisp prend en charge tous les principaux paradigmes de programmation, comme la programmation fonctionnelle, impérative, méta-programmation et orientée objet. Elle propose l'un des systèmes d'objets les plus avancés, appelé CLOS, qui prend en charge des fonctionnalités telles que la distribution multiple et les fonctions génériques.