Le système de types tripartite de Common Lisp : types, classes et vérité de la machine
Cet article explore les aspects uniques du système de types de Common Lisp. Il n’est ni simplement statique ni dynamique, mais une interaction sophistiquée entre les types, les classes et l’implémentation sous-jacente de la machine. Les types régissent la compatibilité des appels de fonctions, la compatibilité des champs de structure et les optimisations du compilateur ; les classes dictent l’expédition des méthodes et l’héritage orienté objet ; tandis que la machine cache les détails d’implémentation tels que les balises de type. À travers des exemples, l’article montre comment Common Lisp équilibre la fluidité des langages dynamiques avec la vérification des types à l’exécution et à la compilation et l’optimisation, améliorant ainsi le débogage et les performances.